Android ContentProvider查看/讀取手機(jī)聯(lián)系人實(shí)例
看到某些App里面有讀取聯(lián)系人的功能,然后自己嘗試了一下。發(fā)現(xiàn)這個(gè)挺簡(jiǎn)單的。然后自己就做了一個(gè)demo給大家,希望借這個(gè)demo可以讓大家學(xué)習(xí)一下怎么實(shí)現(xiàn)讀取手機(jī)聯(lián)系人。
這里我用了兩種方法去讀?。旱谝粡垐D片是跳轉(zhuǎn)到系統(tǒng)自帶的聯(lián)系人界面,第二種就是直接去讀取讓后綁上來(lái)顯示在主頁(yè)面。話不多說(shuō)直接上代碼。
記得在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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Android開(kāi)發(fā)懸浮按鈕 Floating ActionButton的實(shí)現(xiàn)方法
這篇文章主要介紹了Android開(kāi)發(fā)懸浮按鈕 Floating ActionButton的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作
這篇文章主要介紹了AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能
這篇文章主要為大家詳細(xì)介紹了Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Android編程實(shí)現(xiàn)簡(jiǎn)單的UDP Client實(shí)例
這篇文章主要介紹了Android編程實(shí)現(xiàn)簡(jiǎn)單的UDP Client,結(jié)合實(shí)例形式分析了Android實(shí)現(xiàn)UDP Clinet客戶端的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04
Android 重寫(xiě)ViewGroup 分析onMeasure()和onLayout()方法
這篇文章主要介紹了Android 重寫(xiě)ViewGroup 分析onMeasure()和onLayout()方法的相關(guān)資料,需要的朋友可以參考下2017-06-06
Android中TelephonyManager用法實(shí)例
這篇文章主要介紹了Android中TelephonyManager用法,結(jié)合實(shí)例形式分析了TelephonyManager類(lèi)的功能,使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-03-03

