教你如何調(diào)取android通訊錄(電話簿)中的信息

廢話不多少直接開整。
效果圖鎮(zhèn)樓


這里寫圖片描述

1.首先要獲取權(quán)限偶。

<!-- 加入讀寫聯(lián)系人信息的權(quán)限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

頁面做好后我們分別給三個(gè)選擇按鈕添加監(jiān)聽,并在監(jiān)聽中添加打開通訊錄的方法并傳入?yún)^(qū)別三個(gè)信息內(nèi)容的code碼。

@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.contacts_family_bt:
                OpenPhoneBook(0);
                break;
            case R.id.contacts_friend_bt:
                OpenPhoneBook(1);
                break;
            case R.id.contacts_colleague_bt:
                OpenPhoneBook(2);
                break;
            default:
                break;
        }
    }

在方法區(qū)粘入上面代碼中所用到的OpenPhoneBook();方法。

 private void OpenPhoneBook(int requestCode) {
        startActivityForResult(new Intent(
                Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI), requestCode);
    }

你點(diǎn)擊上述按鈕后會(huì)跳入通訊錄界面,選擇聯(lián)系人后會(huì)返回當(dāng)前界面并調(diào)用下面方法。我會(huì)在代碼中以注釋的方式說明其相關(guān)用途。(將下面方法粘入方法區(qū)即可)

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //聲明兩個(gè)承載調(diào)回信息的字符串(用戶名和電話號(hào)碼)
         String username;
         String usernumber;
        if (resultCode == Activity.RESULT_OK) {
            ContentResolver reContentResolverol = getContentResolver();
            Uri contactData = data.getData();
            Cursor cursor = reContentResolverol.query(contactData, null, null, null, null);
            cursor.moveToFirst();
            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);
   //以上代碼是為從通信錄中調(diào)出信息做準(zhǔn)備工作,我怕我講完你們腦袋都大了,這里就不深究了,粘上就好。
            while (phone.moveToNext()) {
        //從通訊錄中獲取姓名和電話號(hào)賦給變量
                username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
               // 根據(jù)我們之前傳入的code碼來區(qū)分回調(diào)的信息是點(diǎn)擊哪個(gè)按鈕的時(shí)候回傳的,并賦給相對(duì)應(yīng)的屬性。
                switch (requestCode){
                    case 0://等于“0”時(shí)代表回傳信息是點(diǎn)擊家人后回傳的,將值設(shè)置給家人
                        family = username+usernumber;
                        family_et.setText(family);
                        break;
                    case 1://“1”代表朋友
                        friend = username+usernumber;
                        friend_et.setText(friend);
                        break;
                    case 2://“2”代表另一個(gè)朋友
                        colleague = username+usernumber;
                        colleague_et.setText(colleague);
                        break;
                    default:
                        break;
                }

            }

        }
    }

還有什么不明白的地方可以在博客下留言,喜歡記得點(diǎn)贊偶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容