我目前正在做一个我想访问移动联系人的项目,所以我已经成功地创建了帐户accountmanager
并且还能够执行Syncadapter
操作。我可以看到我的帐户是在手机中创建的settings->Accounts
。但是,当我尝试使用以下代码获取我的帐户的所有联系人时,它不起作用。它显示除我的应用帐户联系人之外的所有应用程序(google.com 和 WhatsApp.com)联系人。
Cursor cursor = getContext().getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
new String[]{ContactsContract.RawContacts.DIRTY, ContactsContract.RawContacts.ACCOUNT_TYPE},
null,
null,
null);
if (cursor != null && cursor.getCount() >0) {
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
Log.d("Dirty",cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.DIRTY)));
Log.d("ACCountType",cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)));
cursor.moveToNext();
}
cursor.close();
}
我不明白的是我需要代表我的帐户创建ContentProvider
并插入所有联系人吗?Contactsprovider