2011-08-24 91 views
0

我需要將用戶指向聯繫人列表,然後接收選擇。 我發現a very descriptive tutorial,但我不斷收到未捕獲的異常。在我的應用程序中訪問聯繫人數據時出現問題

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

     } 
    } 

編輯: 這裏是受前示出的空指針異常引起的運行時異常。

了java.lang.RuntimeException:失敗遞送結果 ResultInfo {誰= NULL,請求= 1001,結果= -1,數據=意向{ DAT =含量://com.android.contacts/contacts/查找/ 0n293F45435B45/1}} 到活動{com.ptylabs.loveyousms/com.myapps.myApp.MyActivity}: 顯示java.lang.NullPointerException

是的,我已經設置了權限。

任何想法是怎麼回事? 謝謝!

+0

我找不到出了什麼問題。所以我改變了我的代碼,像http://stackoverflow.com/questions/5112392/getting-contact-phone-number – leonsas

回答

0

如果您向我們展示異常情況會更好。我最常做的是,在分配去挑選聯繫人活動我做了以下按鈕的OnClickListener:

startActivityForResult(new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI), CONTACT_PICKER_RESULT); 

另外,不要在manifest文件忘記:

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

這兩件事你的代碼在這裏工作得很好。

3月8日至24日:24:48.115:VERBOSE /調試(12600):android.intent.extra.shortcut.NAME [[email protected]] 3月8日至24日:24:48.115:VERBOSE /調試(12600):得到了結果:內容://com.android.contacts/contacts/lookup/45id8ae8460ccfefc0/37

相關問題