Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/android-studio/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 打开联系人列表后,如何在单击时获取电话号码?_Android_Android Studio_Contacts - Fatal编程技术网

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();
            }
        }
    }
}