Articles of contactscontract

如何在一个SQLite查询中获取联系人ID,电子邮件,电话号码? 联系人Android优化

我希望至少使用一个电话号码获取所有联系人,我也想要每个联系人的所有电话号码和所有电子邮件。 当前代码: // To get All Contacts having atleast one phone number. Uri uri = ContactsContract.Contacts.CONTENT_URI; String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + ” > ?”; String[] selectionArgs = new String[] {“0”}; Cursor cu = applicationContext.getContentResolver().query(uri, null, selection, selectionArgs, null); // For getting All Phone Numbers and Emails further queries : while(cu.moveToNext()){ String id = cu.getString(cu.getColumnIndex(ContactsContract.Contacts._ID)); // […]

隐式连接列如何与Android联系人数据一起使用?

我正在查询ContactsContract.Data表以查找电话记录。 我创建一个新的CursorLoader时出错: java.lang.IllegalArgumentException: Invalid column deleted 我的代码: import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Data; … String[] projection = { Phone.DELETED, Phone.LOOKUP_KEY, Phone.NUMBER, Phone.TYPE, Phone.LABEL, Data.MIMETYPE, Data.DISPLAY_NAME_PRIMARY }; // “mimetype = ? AND deleted = ?” String selection = Data.MIMETYPE + ” = ? AND ” Phone.DELETED + ” = ?”; String[] args = {Phone.CONTENT_ITEM_TYPE, “0”}; return new CursorLoader( […]

在Android设备中使用ACTION_PICKE意图仅显示联系人的电话号码

我的目标是只显示联系人的电话号码给用户,让用户select一些我想本地存储的联系人。 我在下面的方法中使用了各种选项来代替ContactsContract.Contacts.CONTENT_URI。 但是,我得到了很多的联系人(很多是垃圾邮件只有电子邮件ID)显示。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.contact_selector); ((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(contactIntent, 1); } }); } 如果传递ContactsContract.Contacts.CONTENT_URI作为上述方法的参数,并且在下面的处理方法的情况下,查询方法的String []作为投影参数(显示注释),则该方法将失败,并返回java.lang.IllegalArgumentException。 如果我在下面的方法中传递null,那么无论我select什么联系,我都没有find任何与电话号码或电子邮件相关的列。 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if(data != null) { Uri uri = […]

不能插入android的联系人编程到Android设备

ArrayList<ContentProviderOperation> ops =new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValue(Data.RAW_CONTACT_ID, 3) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, "999999999") .withValue(Phone.TYPE, Phone.TYPE_CUSTOM) .withValue(Phone.DISPLAY_NAME, "hhhhhhh") .withValue(ContactsContract.CommonDataKinds.Email.DATA, "abcd@gmail.com") .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValue(Data.RAW_CONTACT_ID, 4) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, "999999999") .withValue(Phone.TYPE, Phone.TYPE_CUSTOM) .withValue(Phone.DISPLAY_NAME, "hhhlllllllllll") .withValue(ContactsContract.CommonDataKinds.Email.DATA, "efgh@gmail.com") .build()); try { cr.applyBatch(ContactsContract.AUTHORITY, ops); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (OperationApplicationException e) { // TODO Auto-generated […]

如何将结构化数据添加到新联系人意图

我需要支持Android 2.1及以上。 Google公布了一个如何使用ContactsContract的例子,但是其中一些使用了从API级别11开始可用的东西,所以我需要即兴创作,但是我被卡住了。 所以,我有这个: String firstName = contactProperties.get("firstName"); String lastName = contactProperties.get("lastName"); String phone = contactProperties.get("phone"); String email = contactProperties.get("email"); String company = contactProperties.get("company"); String postal = contactProperties.get("street") + ", " + contactProperties.get("city") + ", " + contactProperties.get("state") + " " + contactProperties.get("zip") + " " + contactProperties.get("country"); // Creates a new intent for sending […]

读取所有联系人数据

我在Android 2.3.3,API Level 10上。我想读取与它们相关的所有联系人和数据,例如所有的电子邮件地址,电话号码,自定义字段…我试过这样: Uri contactUri = ContactsContract.Contacts.CONTENT_URI; Cursor contacts = managedQuery(contactUri, null, null, null, null ); contacts.moveToFirst(); do { for(int i=0;i<contacts.getColumnCount();i++) { System.out.println(contacts.getColumnName(i) + ": " + contacts.getString(i)); } System.out.println("============\n\n"); } while (contacts.moveToNext()); contacts.close(); 但是,这只给了我以下领域: times_contacted: 0 contact_status: null custom_ringtone: null has_phone_number: 1 phonetic_name: null phonetic_name_style: 0 contact_status_label: null lookup: [removed] contact_status_icon: null last_time_contacted: […]

在Android中从URI中检索联系人电话号码

我正在尝试从内置活动中获取联系人的电话号码。 但是,每当我在下面的代码中使用光标查询数据库时 – 即使有我select的联系人的手机号码,我也会返回零行。 任何人都可以指出我在一个更好的方向,或显示如何获得联系人的电话号码获取其用户ID后的例子? 我的代码: private Runnable getSMSRunnable() { return new Runnable() { public void run() { Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); startActivityForResult(i, CONTACTS_REQUEST_CODE); } }; } 返回日志输出 content://com.android.contacts/data/6802 从中我将ID(6802)传递到一个方法,该方法devise为从具有给定types的ID返回电话号码(在本例中为ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) public static String getContactPhoneNumberByPhoneType(Context context, long contactId, int type) { String phoneNumber = null; String[] whereArgs = new String[] { String.valueOf(contactId), String.valueOf(type) }; […]

获取联系人的姓名,而不是单个显示名称?

我目前正在使用Android联系人内容提供程序,并且当前可以使用以下代码访问联系人完整显示名称而不会造成问题: String[] PROJECTION = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER, }; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; String SELECTION = "LOWER(" + ContactsContract.Contacts.DISPLAY_NAME + ")" + " LIKE '" + constraint + "%' " + "and " + ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'"; Cursor cur = managedQuery(ContactsContract.Contacts.CONTENT_URI, PROJECTION, SELECTION, null, sortOrder); 不过,我希望能够分别获得联系人姓氏和姓氏,我试图使用StructuredName试图得到这个,但我似乎无法得到它的工作。 […]

如何find并收集在任何Android手机给定联系人的所有信息?

目前,我正在将自己手机的所有联系人作为自定义回收视图显示在我的应用中。 到目前为止,我在列表项目视图中显示联系人的姓名,手机号码和个人资料图像,但我需要获取该联系人的所有信息,并在自定义详细信息页面中单击我的应用程序的列表项目时显示该信息。 对于每个联系人都有一组不同的信息可用,比如在less数联系人中我有电子邮件,但是很less有联系人不存在。 我的问题是 我怎样才能得到一个给定的联系人的所有信息,而不会错过任何一个bit.Is有一个结构,我可以遍历和检查每个键的值? 另外,当我在我的应用程序列表中填充系统联系人时,我在列表中多次find相同的联系人。 我认为这是由于在我的设备的帐户经理相同的号码注册许多帐户,如whatsapp,Gmail的事实。 如果是的话,如何在列表中只显示一次该号码。

使用联系人select器时,从多个号码的用户中select一个号码

我正在尝试允许用户使用联系人select器从联系人中select一个电话号码。 不过,现在我在网上看到的所有例子都显示了如何select一个联系人,但是我希望有一个第二个屏幕,然后popup,如果该联系人有多个电话号码,所以你可以指定你想select哪一个(方式该短信可让您在select联系人时进行此操作)。 我的问题是,你必须收集所有的数字,然后要求用户select一个数字,或者这是Android已经内置的function? 我希望我只是忘了一个国旗或什么的。