因为读取联系人信息属于危险权限,所以此程序我用到了Android的动态申请权限,如果你对动态申请权限还不了解,请看我的另一篇博客,链接地址如下:
现在我们来分析一下怎么使用Android的内容提供器读取手机联系人信息,首先你要知道联系人信息在哪?怎么读取?
其实我们的联系人信息都保存在Android内置数据库的一张表上,我们只要读取对应的那张数据表上的信息就可以了,读取步骤如下:
- 调用getContentResolver().query()方法得到一个Cursor对象
- 将Cursor对象定位在第一行
- 对Cursor对象进行读取操作,对数据表以行的方式进行读取
- 将Cursor对象移到下一行
- 关闭Cursor对象
别忘了在AndroidManifest.xml文件中声明权限,在AndroidManifest.xml加入以下代码:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
好了,现在正式开始程序,MainActivity的代码如下:
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private ArrayAdapter<String> adapter;
private List<String> list = new ArrayList<>();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState)