2012-06-27 91 views
1

我剛剛創建了一個應用程序,當我按下按鈕並檢索所選的號碼時,我設法獲得了手機聯繫人。模擬聯繫人不會顯示

我的問題是,我只看到手機通訊錄,而不是SIM卡通訊錄。

我的代碼是:

@Override 
    public void onActivityResult(int reqCode, int resultCode, Intent data) { 
     super.onActivityResult(reqCode, resultCode, data); 
     if (resultCode!=0){ 
      Uri uri = data.getData(); 
      Cursor cursor=this.getContentResolver().query(uri, null, null, null, null); 

       while (cursor.moveToNext()) { 
       String contactId = cursor.getString(cursor.getColumnIndex( 
        ContactsContract.Contacts._ID)); 
       String hasPhone = cursor.getString(cursor.getColumnIndex( 
        ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
       if ((Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)) { 
          // You know have the number so now query it like this 
      Cursor phones = getContentResolver().query( 
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
       null, 
       ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, 
        null, null); 
       while (phones.moveToNext()) { 

        phoneNumber = phones.getString( 
        phones.getColumnIndex( 
         ContactsContract.CommonDataKinds.Phone.NUMBER)); 

       } 
       phonenumber.setText(phoneNumber); 

       phones.close(); 
       } 
       } 

     } 


    } 

而且東西我無法理解。

Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivity(intent);

顯示所有聯繫人,但我不能選擇一個,對結果

意圖意圖=新意圖(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent,1);

只顯示手機中的聯繫人爲什麼?

+0

請參閱以前發佈的問題的答案:http://stackoverflow.com/questions/8908859/how-to-read-android-sim-contacts-and-phone-contacts-separately – Avery

+0

這不會幫助我只是不能明白當我開始意圖沒有活動的結果我得到所有的聯繫人,當我做結果我只拿到phoneones? – user878813

回答

0

在你的意圖補充一點:

intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 

所有其他的罰款。