内置Content Provider

来源:互联网 发布:淘宝主播招聘 编辑:程序博客网 时间:2024/05/29 16:56
  • 通过内置的内容提供器获取手机的联系人信息
  • 布局文件
<?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

  • 效果图如下:
    这里写图片描述

0 0
原创粉丝点击