Android四大组件之ContentProvider(内容提供者)02
2017-02-18 15:56
627 查看
上次我们也有提到过内容提供者,那么今天,我们继续来说说它,这两天写了一个获取我们自己手机联系人信息的一个小Demo,想跟大家分享分享 main.xml:
<?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.zking.android_25_getcontacts.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取手机联系人" android:onClick="getContacts"/> </LinearLayout>mainactivity:
package com.zking.android_25_getcontacts; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; public class MainActivity extends AppCompatActivity { private ContentResolver cr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cr = getContentResolver(); } public void getContacts(View view){ //获取联系人的ID以及名字 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")); String name=cursor.getString(cursor.getColumnIndex("display_name")); Log.i("test",id+" "+name); //根据联系人的ID获取联系人相对应的数据(名字+邮箱+phone) Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data"); Cursor cursorData=cr.query(uriData,null,null,null,null); while(cursorData.moveToNext()){ String data1=cursorData.getString(cursorData.getColumnIndex("data1")); //int type=cursorData.getInt(cursorData.getColumnIndex("mimetype_id")); String type=cursorData.getString(cursorData.getColumnIndex("mimetype")); if("vnd.android.cursor.item/phone_v2".equals(type)){ Log.i("test"," "+data1+" "+type); } } } } }
最后不要忘了添加权限
<!--读取联系人--><uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>我是用夜神模拟器测试的,所以后台打印出来的联系人信息也是夜神里面的,截图如下:
相关文章推荐
- Android四大组件之一ContentProvider内容提供者(继SQLite数据存储篇)
- Android四大组件之一ContentProvider(内容提供者)
- Android之四大组件之一-ContentProvider内容提供者的使用(二)
- Android四大组件之一之内容提供者ContentProvider
- Android四大组件之ContentProvider(内容提供者)01
- Android基础之四大组件-ContentProvider(内容提供者)
- Android四大组件之内容提供者ContentProvider
- Android四大组件之ContentProvider(内容提供者)
- android四大组件之一内容提供者contentprovider
- Android 四大组件之一 :ContentProvider内容提供者从入门到精通
- Android四大组件ContentProvider 内容提供者
- Android组件系列----ContentProvider内容提供者
- Android四大组件之内容提供者
- Android——ContentProvide 内容提供者+四大组件之三
- android 四大应用主键之 --- ContentProvider (内容提供者)
- Android——ContentProvide 内容提供者+四大组件之三
- 【Android学习之道】 四大组件之ContentProvider内容提供器
- Android之四大组件之一-Content Provider内容提供者的介绍(一)
- Android Day09四大组件之内容提供者ContentProvider
- Android组件之ContentProvider(内容提供者)