2

Androidですべての連絡先を取得する方法を知っていますが、連絡先を選択すると、希望する連絡先を取得できません。例:4つの連絡先があります

joe have phone number 7889 987;
erick have phone number 8792 871;
nona phone number 3653 872 and 2345 907;
rina phone number 8796 235;

joeを選択すると、nonaの電話番号=2345907が表示されます。アプリケーションの問題がわかりません。

これは私のコードです

public void tambahPenerima ( View v ) {
    Intent i = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    i.setType(ContactsContract.Contacts.CONTENT_TYPE);
    startActivityForResult(i, PICK_CONTACT);    
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {     
    if(resultCode == RESULT_OK) {
            Cursor cursor = null;
            String name = "";
            String number = "";

            cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

            while(cursor.moveToNext()) {
                name = cursor.getString(cursor.getColumnIndex((ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
                number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            } 
                if(cursor!=null) {
                    cursor.close();
                }

                Intent kirimPesan = new Intent();
                kirimPesan.setClass(this, kirimPesan.class);
                kirimPesan.putExtra("nama", name);
                kirimPesan.putExtra("nomor", number);
                kirimPesan.putExtra("chiper", chiper);
                startActivity(kirimPesan);
    }                   
}

誰かが私を助けてください、私は本当に助けが必要です。英語が下手でごめんなさい。ありがとう ..

4

2 に答える 2

0
     cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
 if(cursor != null && cursor.moveToFirst()) {

                while(cursor.moveToNext()) {
                    name = cursor.getString(cursor.getColumnIndex((ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
                    number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                } 
}
于 2013-03-12T05:14:43.907 に答える
0

これは、特定の連絡先の詳細を取得するのに役立つ場合があります

ここで名前または番号を渡し、必要な連絡先の詳細を取得します

 private String getContactName(Context context, String number) {
        String name = null;
        // define the columns I want the query to return
        String[] projection = new String[] {
                ContactsContract.PhoneLookup.DISPLAY_NAME,
                ContactsContract.PhoneLookup._ID};

        // encode the phone number and build the filter URI
        Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));

        // query time
        Cursor cursor = context.getContentResolver().query(contactUri, projection, null, null, null);

        if(cursor != null) {
            if (cursor.moveToFirst()) {
                name = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
                Log.v(TAG, "Started uploadcontactphoto: Contact Found @ " + number);            
                Log.v(TAG, "Started uploadcontactphoto: Contact name  = " + name);
            } else {
                Log.v(TAG, "Contact Not Found @ " + number);
            }
            cursor.close();
        }
        return name;
    }
于 2013-03-12T06:07:24.940 に答える