Android 打开联系人列表后,如何在单击时获取电话号码?
我的代码片段中有以下按钮Android 打开联系人列表后,如何在单击时获取电话号码?,android,android-studio,contacts,Android,Android Studio,Contacts,我的代码片段中有以下按钮 <Button android:text="Choose Contact" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ContactButton" android:onClick="callContact" android:layout_marginBottom="31dp" android:layout_abo
<Button
android:text="Choose Contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ContactButton"
android:onClick="callContact"
android:layout_marginBottom="31dp"
android:layout_above="@+id/CallButton"
android:layout_centerHorizontal="true" />
现在我看到了联系人列表。我问你,如果我点击一个联系人的电话号码,怎么可能从中得到这个号码
android studio onclick android联系人联系人尝试以下意图:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, 1);
需要调用活动结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
null, null, null);
if (c != null && c.moveToFirst()) {
String mobileNumber = c.getString(0);
int type = c.getInt(1);
}
} finally {
if (c != null) {
c.close();
}
}
}
}
你好@Rahul Kharade,谢谢你的回答。我试过了,但失败了。你可能知道可能的原因吗?它看起来像是权限问题,添加到清单中。好吧,它在,它仍然在崩溃。还有其他想法吗?请检查以上答案。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
null, null, null);
if (c != null && c.moveToFirst()) {
String mobileNumber = c.getString(0);
int type = c.getInt(1);
}
} finally {
if (c != null) {
c.close();
}
}
}
}