Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 - Fatal编程技术网

Android 访问联系人数据时出现问题

Android 访问联系人数据时出现问题,android,Android,在我的应用程序中,我需要将用户指向联系人列表,然后接收选择。 我找到了,但我一直得到一个意外的异常 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case CONTACT_PICKER_RESULT:

在我的应用程序中,我需要将用户指向联系人列表,然后接收选择。 我找到了,但我一直得到一个意外的异常

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
            case CONTACT_PICKER_RESULT:
                 Bundle extras = data.getExtras();
    Set<String> keys = extras.keySet(); //NullPointerException on this line

    Iterator<String> iterate = keys.iterator();
    while (iterate.hasNext()) {
        String key = iterate.next();
        Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]");
    }
    Uri result = data.getData();
    Log.v(DEBUG_TAG, "Got a result: "
        + result.toString());
                break;
            }

        } 
    }
activityresult上受保护的void(int-requestCode、int-resultCode、Intent-data){
if(resultCode==RESULT\u OK){
开关(请求代码){
案例联系人\u选取者\u结果:
Bundle extras=data.getExtras();
Set keys=extras.keySet();//此行为NullPointerException
Iterator iterate=keys.Iterator();
while(iterate.hasNext()){
字符串键=iterate.next();
Log.v(DEBUG_标记,key++“[”+extras.get(key)+“]);
}
Uri结果=data.getData();
Log.v(DEBUG_标记,“获得结果:”
+result.toString());
打破
}
} 
}
编辑: 下面是由前面显示的NullPointerException引起的运行时异常

java.lang.RuntimeException:传递结果失败 ResultInfo{who=null,request=1001,result=-1,data=Intent{ dat=content://com.android.contacts/contacts/lookup/0n293F45435B45/1 }} 至活动{com.ptylabs.loveyousms/com.myapps.myApp.MyActivity}: java.lang.NullPointerException

是的,我已经设置了权限

你知道怎么回事吗?
谢谢

如果你给我们看看例外情况总是好的。我通常做的是,在分配给“选择联系人”活动的按钮的OnClickListener上,我执行以下操作:

startActivityForResult(new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI), CONTACT_PICKER_RESULT);
另外,不要在清单文件中忘记这一点:

<uses-permission android:name="android.permission.READ_CONTACTS" />

您的代码在这两个方面运行良好

08-24 03:24:48.115:VERBOSE/debug(12600):android.intent.extra.shortcut.NAME[xxxx@hotmail.com] 08-24 03:24:48.115:详细/调试(12600):得到一个结果:content://com.android.contacts/contacts/lookup/45id8ae8460ccfefc0/37


我找不到哪里出了问题。所以我把代码改成了