2011-07-11 16 views
4

私は自分の携帯電話で最初の10枚のSIMカードの連絡先にアクセスする必要があります。私が使用したコードは以下の通りです:私は電話でそれをテストアンドロイドのsimカードの連絡先にアクセス

public class simcontacts extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Uri uri16 = Uri.parse("content://icc/adn/"); 

    String[]SimContactsName = new String[250]; 
    String[]SimContactsNumber = new String[250]; 
    int count = 0; 
    ContentResolver cr = getApplicationContext().getContentResolver(); 
    Cursor cur = cr.query(uri16, 
      null, null, null, null); 


    if (cur.getCount() > 0) { 
    while (cur.moveToNext()) { 


    String id = cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts._ID)); 

    if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
    { 
     Cursor pCur = cr.query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
       null, 
       ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
       new String[]{id}, null); 
       while (pCur.moveToNext()) 
       { 
       String contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
       String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
       SimContactsName[count]=contact; 
       SimContactsNumber[count]=number; 
       count++; 
       } 
       pCur.close(); 
     } 
     } 
} 

    TelephonyManager telMng = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 

    for (int i=0; i<10;i++) 
    { 
     Message=Message+SimContactsNumber[i]+"\n"; 
    } 

    Toast.makeText(this, Message, Toast.LENGTH_LONG).show(); 

} 

、HTC野火S、私はすべてのnull値を得ました。 私は電話の連絡先uri、ContactsContracts.Contacts.CONTENT_URIでそれをテストしてもうまくいきました。 SIM連絡先にアクセスするにはどうすればよいですか?私は使用する必要があります別のuriはありますか?

答えて

0

あなたのコードはUriと完全に取り組んでいる:

Uri uri16 =ContactsContract.Contacts.CONTENT_URI; 

は、あなたが例えばのように、AndroidのマニフェストにAndroidの権限を追加したことを確認してください: はandroid.permission.READ_CONTACTS(パーミッションを使用します)。

+1

@ Luksprogこのことを詳しく教えてもらえますか、まだ値が得られていますか –

関連する問題