Android联系人信息,包括facebook等联系人。
|
我正在使用以下代码。在我的应用程序中,用户可以从联系人中选择以查看联系人信息(应用程序跳至相应的联系人信息)。
这是代码的结果:
用户点击电话中的数据的人:应用程序跳转到联系信息
用户单击从Facebook导入数据的人:如果这是该应用程序的首次运行,它将强制关闭。如果用户以前单击过电话中已存储数据的人(手动添加),则会显示其联系信息。
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0)
{
while (cur.moveToNext()) {
id_contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name_contact =
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
if (name_contact.equals(myArr2_cs[item]))
{
Toast.makeText(getApplicationContext(), \"NAME2: \" + name_contact, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), \"ID2: \" + id_contact, Toast.LENGTH_SHORT).show();
if (Integer.parseInt(cur.getString(
cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +\" = ?\", new String[]{id_contact}, null);
id_contact2 = id_contact;
}
}
}
}
Toast.makeText(getApplicationContext(), \"id_contact: \" + id_contact2, Toast.LENGTH_SHORT).show();
Intent intent_contacts = new Intent(Intent.ACTION_VIEW, Uri.parse(\"content://contacts/people/\" + id_contact2));
startActivity(intent_contacts);
}
在这里,我发现允许访问Facebook联系人。这个家伙还说:“我通过FB Graph api(http://graph.facebook.com/me/friends)获取所有联系人姓名/ id映射的缓存,并将其用于id查找。”这意味着什么?
如果我无法解决此问题,则我的程序看起来很la脚。该应用程序中会出现500个联系人,但是只有在大约40个联系人信息的情况下,该应用程序才会跳转。在最后460个案例中,它不起作用。
没有找到相关结果
已邀请:
1 个回复
磐剩