我想从ContactsContract API中读取联系人,该联系人仅属于电话/ SIM卡,并且希望避免与其他应用(如Facebook和Gmail)同步的联系人。我在模拟器上测试了我的代码,它工作正常,但在真实设备上它不返回任何结果。Android联系人应用程序中联系人的默认帐户类型/名称是什么?
ContentResolver cr = AndroidContext.getContext()
.getContentResolver();
Cursor nativeContacts = cr.query(RawContacts.CONTENT_URI,
new String[] { RawContacts._ID, RawContacts.VERSION, RawContacts.CONTACT_ID },
RawContacts.DELETED + "<> 1 AND " + RawContacts.CONTACT_ID
+ " IS NOT NULL AND " + RawContacts.ACCOUNT_NAME + " IS NULL AND "
+ RawContacts.ACCOUNT_TYPE + " IS NULL", null, null);
我想对设备的默认帐户的帐户类型和名称不为空,该如何解决?
所以我尝试了一个小样本应用程序来获取不同设备中使用的帐户类型和名称。在** HTC **帐户类型和NME是com.htc.android.pcsc和com.android.sim,而在索尼Xperia它是com.sonyerricson.contacts。因此,似乎所有设备使用不同的类型和名称,现在的问题是我如何获得默认帐户?我可以做这样的AccountManager.getAccounts()[0],并相信这将是设备上的默认帐户。 – 2011-02-02 15:07:51
嗨拉胡尔,大家。我也想知道这个问题的答案。我只想从手机/ SIM卡本身提取联系人信息。 – Creniale 2011-05-04 07:15:09
`我可以做一些像这样AccountManager.getAccounts()[0],并相信这将是设备上的默认帐户。“#: 不,你不能。如果帐户名称为空,则无法从`AccountManager.getAccounts()` – Autobots 2014-09-24 11:59:47