Android 无法从联系人检索电子邮件
我正在编写代码以获取所选联系人的电子邮件,但当我选择联系人并返回主要活动时,我无法获取电子邮件(祝酒词未显示)Android 无法从联系人检索电子邮件,android,android-intent,android-contentprovider,android-contacts,Android,Android Intent,Android Contentprovider,Android Contacts,我正在编写代码以获取所选联系人的电子邮件,但当我选择联系人并返回主要活动时,我无法获取电子邮件(祝酒词未显示) 您需要执行另一个查询以检索电子邮件地址。 检查此答案(关于电子邮件地址的底部部分),这是相同的问题: 编辑:代码示例 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(
您需要执行另一个查询以检索电子邮件地址。
检查此答案(关于电子邮件地址的底部部分),这是相同的问题: 编辑:代码示例
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// ADD IF STATEMENTS HERE TO CHECK the requestCode, resultCode and data
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
// has result
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
// new query for the mail
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
// has result
if(emailCursor.moveToFirst()) {
String email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
Log.d(getClass().getName(), "EMAIL = " + email);
}
emailCursor.close();
}
c.close();
}
不要忘记在清单中添加READ_CONTACTS权限。您需要执行另一个查询来检索电子邮件地址。
检查此答案(关于电子邮件地址的底部部分),这是相同的问题: 编辑:代码示例
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// ADD IF STATEMENTS HERE TO CHECK the requestCode, resultCode and data
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
// has result
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
// new query for the mail
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
// has result
if(emailCursor.moveToFirst()) {
String email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String emailType = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
Log.d(getClass().getName(), "EMAIL = " + email);
}
emailCursor.close();
}
c.close();
}
别忘了在清单中添加READ_CONTACTS权限。@lukas what is String[]{id}…你能给我完整的代码吗@lukas what is String[]{id}…你能给我完整的代码吗