天天看點

Android中擷取系統通訊錄聯系人并顯示在EditText

        好多時候,我們都要使用選擇聯系人的操作,自己寫的話 很麻煩,倒不如直接調用系統的通訊錄,這樣來的直接,來的友善

       下面我們來看需求:

需求:

一個EditText 點選button的時候轉到系統通訊錄,選中其中一個通訊錄item傳回目前界面且把

選中的聯系人号碼使用者名顯示在EditText 上。

Android中擷取系統通訊錄聯系人并顯示在EditText

Android中擷取系統通訊錄聯系人并顯示在EditText

Android中擷取系統通訊錄聯系人并顯示在EditText

直接上代碼:

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {

    EditText text;
    String username,usernumber;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (EditText)findViewById(R.id.number);
    }

    
   public void click(View v){
       startActivityForResult(new Intent(
                Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI), 0);
   }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            ContentResolver reContentResolverol = getContentResolver();
             Uri contactData = data.getData();
             @SuppressWarnings("deprecation")
            Cursor cursor = managedQuery(contactData, null, null, null, null);
             cursor.moveToFirst();
             username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                     null, 
                     ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, 
                     null, 
                     null);
             while (phone.moveToNext()) {
                 usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                 text.setText(usernumber+" ("+username+")");
             }

         }
    }
}      

需要添權重限:

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

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

感謝您的閱讀,如果文章中有錯誤或者您有什麼好的建議,也歡迎您直接留言批評指教。Thanks,friends!