利用ContentResolver內(nèi)容訪問者,獲取手機(jī)聯(lián)系人信息我做了兩種不同的做法。第一種,直接獲取所有手機(jī)聯(lián)系人信息,展示在ListView中。第二種,通過Butten按鈕跳轉(zhuǎn)到系統(tǒng)的手機(jī)聯(lián)系人界面,單個(gè)獲取手機(jī)聯(lián)系人信息,展示在ListView中,結(jié)果如下:
目前創(chuàng)新互聯(lián)公司已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、裕安網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
第一種:
第二種:
第一種:直接獲取所有手機(jī)聯(lián)系人信息
首先需要在AndroidManifest.xml文件中添加權(quán)限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> activity_main.xml布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.android_25.MainActivity"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv_lxr" > </ListView> </LinearLayout>
activity_xs.xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_xs" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.android_25.XsActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_name" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_telephone" /> </LinearLayout>
MainActivity類:
private ListView lv_lxr; private Button b_name; private ContentResolver cr; private List<Map<String, Object>> datalistView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲得ListView lv_lxr = (ListView) findViewById(R.id.lv_lxr); //得到訪問者 cr = getContentResolver(); //定義一個(gè)接收聯(lián)系人姓名和電話號(hào)碼的集合 datalistView = new ArrayList<>(); Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor= cr.query(uri,null,null,null,null); while(cursor.moveToNext()){ int id=cursor.getInt(cursor.getColumnIndex("_id")); Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data"); Cursor contactData= cr.query(uriData,null,null,null,null); //用來(lái)裝姓名 String aa=""; //用來(lái)裝號(hào)碼 String bb=""; while(contactData.moveToNext()){ String type=contactData.getString(contactData.getColumnIndex("mimetype")); //如果獲取的是vnd.android.cursor.item/phone_v2則是號(hào)碼 if(type.equals("vnd.android.cursor.item/phone_v2")){ bb=contactData.getString(contactData.getColumnIndex("data1")); //如果獲取的是vnd.android.cursor.item/name則是姓名 }else if(type.equals("vnd.android.cursor.item/name")) { aa=contactData.getString(contactData.getColumnIndex("data1")); } } //將用戶名和號(hào)碼放入Map集合中 Map<String,Object> map=new HashMap<>(); map.put("images",aa); map.put("titles",bb); datalistView.add(map); } SimpleAdapter adapter=new SimpleAdapter(this, datalistView,R.layout.activity_xs,new String[]{"images","titles"},new int[]{R.id.tv_name,R.id.tv_telephone}); lv_lxr.setAdapter(adapter); }
第二種:通過Butten按鈕跳轉(zhuǎn)到系統(tǒng)的手機(jī)聯(lián)系人界面,單個(gè)獲取手機(jī)聯(lián)系人信息,展示在ListView中
activity_contacts.xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_contacts" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.android_25.ContactsActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳轉(zhuǎn)到聯(lián)系人頁(yè)面" android:id="@+id/b_tzcontacts" /> </LinearLayout> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/lv_contacts" ></ListView> </LinearLayout>
ContactsActivity類:
private Button b_tzcontacts; private String phoneName; private String phoneNumber; private List<Map<String,Object>> datalistView; private ListView lv_contacts; private SimpleAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); //獲得跳轉(zhuǎn)到聯(lián)系人的id b_tzcontacts =(Button) findViewById(R.id.b_tzcontacts); //獲得ListView的ID lv_contacts =(ListView) findViewById(R.id.lv_contacts); //定義一個(gè)接受聯(lián)系人姓名和電話號(hào)碼的集合 datalistView = new ArrayList<>(); //獲取聯(lián)系人的點(diǎn)擊事件 b_tzcontacts.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intentPhone=new Intent(Intent.ACTION_PICK); intentPhone.setData(ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intentPhone,0); } }); //R.layout.activity_xs就是上文的activity_xs布局問價(jià) adapter = new SimpleAdapter(this, datalistView, R.layout.activity_xs,new String[]{"images","titles"},new int[]{R.id.tv_name,R.id.tv_telephone}); lv_contacts.setAdapter(adapter); } //獲得返回的結(jié)果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 0: if(resultCode== Activity.RESULT_OK){ Uri uri=data.getData(); Cursor cursor=managedQuery(uri,null,null,null,null); cursor.moveToFirst(); String contactid=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //得到ContentResolver ContentResolver contentResolver=getContentResolver(); Cursor phone=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactid,null,null); while (phone.moveToNext()){ //聯(lián)系人 phoneName =phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); //手機(jī)號(hào)碼 phoneNumber =phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); //格式化手機(jī)號(hào) phoneNumber = phoneNumber.replace("-",""); phoneNumber = phoneNumber.replace("",""); //將用戶名和號(hào)碼放入Map集合中 Map<String,Object> map=new HashMap<>(); map.put("images",phoneName); map.put("titles",phoneNumber); datalistView.add(map); } //刷新適配器 adapter.notifyDataSetChanged(); } break; } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
文章標(biāo)題:android利用ContentResolver訪問者獲取手機(jī)聯(lián)系人信息
文章URL:http://muchs.cn/article8/pjjpop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、微信公眾號(hào)、網(wǎng)站改版、網(wǎng)站導(dǎo)航、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)