- 通过内置的内容提供器获取手机的联系人信息
- 布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.lingzhuo.testprovider1.MainActivity">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
></ListView>
</LinearLayout>
- 逻辑代码如下
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayAdapter<String> adapter;
private List<String> list=new ArrayList<>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,list);
init();
getContacts();
listView.setAdapter(adapter);
}
private void init() {
listView= (ListView) findViewById(R.id.listView);
}
public void getContacts() {
Cursor cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);
while (cursor.moveToNext()){
String name=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String num=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
list.add(name+"\n"+num);
}
}
}
- 同时需要在AndroidManifest声明权限
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
-
- 联系人姓名
- ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
- 联系人号码
ContactsContract.CommonDataKinds.Phone.NUMBER
效果图如下: