Android ContentProvider实现获取手机联系人功能
在之前项目中有用到关于获取手机联系人的部分,闲置就想和大家分享一下,话不多说,上代码:
java部分:
package com.example.content; 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){ 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 display_name=cursor.getString(cursor.getColumnIndex("display_name")); Log.i("test",_id+" "+display_name); 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 mimetype=cursorData.getString(cursorData.getColumnIndex("mimetype")); String data1=cursorData.getString(cursorData.getColumnIndex("data1")); if("vnd.android.cursor.item/phone_v2".equals(mimetype)){ Log.i("test"," "+mimetype+" "+data1); } } } } }
xml部分:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.content.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取手机联系人" android:onClick="getContacts" /> </LinearLayout>
在需要获取系统的东西的时候一定不要忘记给权限啊
AndroidManifest.xml部分:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.content"> <!--获取手机的联系人--> <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)