您好,登錄后才能下訂單哦!
看到某些App里面有讀取聯(lián)系人的功能,然后自己嘗試了一下。發(fā)現(xiàn)這個(gè)挺簡(jiǎn)單的。然后自己就做了一個(gè)demo給大家,希望借這個(gè)demo可以讓大家學(xué)習(xí)一下怎么實(shí)現(xiàn)讀取手機(jī)聯(lián)系人。
這里我用了兩種方法去讀取:第一張圖片是跳轉(zhuǎn)到系統(tǒng)自帶的聯(lián)系人界面,第二種就是直接去讀取讓后綁上來(lái)顯示在主頁(yè)面。話不多說直接上代碼。
記得在AndroidManifest.xml 記得加入這兩句,不然就讀取不到聯(lián)系人。
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
package com.example.android_contentersolver; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.Contacts; import android.provider.ContactsContract; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.main_btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //查詢聯(lián)系人號(hào)碼 final Cursor cursor = getContentResolver() .query(ContactsContract.CommonDataKinds .Phone.CONTENT_URI, null, null, null, null); BaseAdapter adapter = new BaseAdapter() { @Override public int getCount() { return cursor.getCount(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { cursor.moveToPosition(position); // CheckBox rb = new CheckBox(MainActivity.this); TextView text=new TextView(MainActivity.this); // 獲取聯(lián)系人的電話號(hào)碼,并去掉中間的中劃線、空格 String number = cursor .getString(cursor.getColumnIndex( ContactsContract.CommonDataKinds .Phone.NUMBER)) .replace("-", "") .replace(" ", ""); // rb.setText(number); String name = cursor .getString(cursor.getColumnIndex( ContactsContract.CommonDataKinds .Phone.DISPLAY_NAME)); text.setText("名字:"+name+" 電話號(hào)碼:"+number); return text; } }; //加載listview ListView listview=(ListView) findViewById(R.id.mian_list); listview.setAdapter(adapter); } }); //跳轉(zhuǎn)系統(tǒng)的聯(lián)系人界面 findViewById(R.id.main_btn_sys).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction(intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone"); startActivityForResult(intent, 0x100); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); Uri uri=data.getData(); Cursor cursor = getContentResolver() .query(uri, null, null, null, null); while(cursor.moveToNext()){ String name=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NAME)); String number=cursor.getString(cursor.getColumnIndexOrThrow(Contacts.Phones.NUMBER)); TextView textview=(TextView) findViewById(R.id.mian_lists); textview.setText("名字:"+name+" 電話號(hào)碼:"+number); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。