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
我找不到哪里出了问题。所以我把代码改成了