2015-04-23 101 views
0

在我的Android應用程序中,我想檢索所有SIM卡和手機聯繫人。如果我單獨執行代碼,它可以正常工作,但如果我將它結合起來,我只需獲得手機通訊錄。如何獲得兩個聯繫? 我對SIM卡通訊錄代碼:以編程方式在Android中檢索SIM卡聯繫人

private void SIMContacts() 
 
{ 
 
    try 
 
    { 
 
     String strPhonename = null; 
 
     String strphoneNo = null; 
 

 
    Uri simUri = Uri.parse("content://icc/adn"); 
 
    Cursor cursorSim = this.getContentResolver().query(simUri,null,null,null,null); 
 

 
    while (cursorSim.moveToNext()) 
 
    {  
 
     strPhonename =cursorSim.getString(cursorSim.getColumnIndex("name")); 
 
     strphoneNo = cursorSim.getString(cursorSim.getColumnIndex("number")); 
 
     strphoneNo.replaceAll("\\D",""); 
 
     strphoneNo.replaceAll("&", ""); 
 
     strPhonename=strPhonename.replace("|",""); 
 

 
     Log.i("Contact: ", "name: "+strPhonename+" phone: "+strphoneNo); 
 
    }   
 
} 
 
catch(Exception e) 
 
{ 
 
    e.printStackTrace(); 
 
} 
 
}

回答

1

嘗試從AA ArrayList中使用,並得到號碼列表

public void getNumber(ContentResolver cr) { 

    public static ArrayList<String> aa = new ArrayList<String>(); 
    Cursor phones = cr.query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
      null, null); 

    // System.out.println("Phone" + phones.getCount()); 

    while (phones.moveToNext()) { 
     String name = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     phoneNumber = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
     // System.out.println(".................." + phoneNumber); 
     aa.add(name); 
     aa.add(phoneNumber); 
    } 
    phones.close();// close cursor 



    // display contact numbers in the list 
} 
+0

這給這隻手機的聯繫人列表。我是能夠檢索但我希望將手機通訊錄和SIM卡通訊錄放在一起。 –

相關問題