在Android中获取最受欢迎的联系人
我正在尝试获取Android联系人收藏夹列表中的所有联系人。目前,我可以获得所有的组ID,包括最喜爱的组ID。但似乎没有联系人将组ID作为最喜爱的组ID 我正在尝试获取每个组中的所有组id和联系人。在打印了两个列表后,我发现favorite的组id不在联系人列表中在Android中获取最受欢迎的联系人,android,contacts,addressbook,favorites,Android,Contacts,Addressbook,Favorites,我正在尝试获取Android联系人收藏夹列表中的所有联系人。目前,我可以获得所有的组ID,包括最喜爱的组ID。但似乎没有联系人将组ID作为最喜爱的组ID 我正在尝试获取每个组中的所有组id和联系人。在打印了两个列表后,我发现favorite的组id不在联系人列表中 ArrayList<String> favGroupId=new ArrayList<String>(); final String[] GROUP_PROJECTION = new Strin
ArrayList<String> favGroupId=new ArrayList<String>();
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID, ContactsContract.Groups.TITLE };
Cursor cursor = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, null,
null, ContactsContract.Groups.TITLE);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups._ID));
Log.v("Test",id);
String gTitle = (cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups.TITLE)));
Log.v("Test",gTitle);
if (gTitle.contains("Favorite_")) {
gTitle = "Favorites";
favGroupId.add(id);
}
}
cursor.close();
ArrayList favGroupId=new ArrayList();
最终字符串[]组投影=新字符串[]{
contacts contract.Groups.\u ID,contacts contract.Groups.TITLE};
Cursor Cursor=getContentResolver().query(
contacts contract.Groups.CONTENT\u URI,组投影,null,
空,ContactsContract.Groups.TITLE);
while(cursor.moveToNext()){
String id=cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups._ID));
Log.v(“测试”,id);
字符串gTitle=(cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups.TITLE));
Log.v(“测试”,gTitle);
if(gTitle.contains(“收藏夹”)){
gTitle=“收藏夹”;
favGroupId.add(id);
}
}
cursor.close();
您可以使用类中的字段。如果将查询更改为:
Cursor cursor = this.managedQuery(
ContactsContract.Contacts.CONTENT_URI, projection, "starred=?",
new String[] {"1"}, null);
这将返回Android上默认联系人应用程序的“收藏夹”选项卡中显示的所有联系人的列表。完成回答,包括打开联系人的意向:
Map getFavoriteContacts(){
Map contactMap = new HashMap();
Uri queryUri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.STARRED};
String selection =ContactsContract.Contacts.STARRED + "='1'";
Cursor cursor = managedQuery(queryUri, projection, selection, null, null);
while (cursor.moveToNext()) {
String contactID = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID));
intent.setData(uri);
String intentUriString = intent.toUri(0);
String title = (cursor.getString(
cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
contactMap.put(title,intentUriString);
}
cursor.close();
return contactMap;
}
请与Kotlin联系:
import android.content.Context
import android.provider.ContactsContract
import android.content.Intent
import android.net.Uri
fun getFavoriteContacts(context: Context): Map<*, *> {
lateinit var contactMap : HashMap<String, String>
val queryUri = ContactsContract.Contacts.CONTENT_URI.buildUpon()
.appendQueryParameter(ContactsContract.Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
.build()
val projection = arrayOf(
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.STARRED
)
val selection = ContactsContract.Contacts.STARRED + "='1'"
val cursor = context.getContentResolver().query(queryUri,
projection, selection, null, null)
while (cursor.moveToNext()) {
val contactID = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID))
val intent = Intent(Intent.ACTION_VIEW)
val uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_URI, contactID.toString())
intent.data = uri
val intentUriString = intent.toUri(0)
val title = cursor.getString(
cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))
contactMap[title] = intentUriString
}
cursor.close()
return contactMap
}
导入android.content.Context
导入android.provider.contacts合同
导入android.content.Intent
导入android.net.Uri
趣味getFavoriteContacts(上下文:上下文):映射{
lateinit var contactMap:HashMap
val queryUri=ContactsContract.Contacts.CONTENT\u URI.buildon()
.appendQueryParameter(Contacts contract.Contacts.EXTRA\u ADDRESS\u BOOK\u INDEX,“true”)
.build()
val投影=阵列(
联系人合同联系人。\u ID,
Contacts contract.Contacts.DISPLAY\u NAME,
联系人contract.Contacts.STARRED
)
val选择=Contacts contract.Contacts.STARRED+“='1'”
val cursor=context.getContentResolver().query(queryUri,
投影,选择,空,空)
while(cursor.moveToNext()){
val contactID=cursor.getString(cursor
.getColumnIndex(Contacts Contacts.Contacts.\u ID))
val intent=intent(intent.ACTION_视图)
val uri=uri.withAppendedPath(
Contacts contract.Contacts.CONTENT\u URI,contactID.toString()
intent.data=uri
val intentUriString=intent.toUri(0)
val title=cursor.getString(
cursor.getColumnIndex(Contacts contract.Contacts.DISPLAY_NAME))
contactMap[标题]=监视
}
cursor.close()
返回联系人地图
}