获取ContentProvider来获取手机所有的联系人及联系人信息
生活随笔
收集整理的這篇文章主要介紹了
获取ContentProvider来获取手机所有的联系人及联系人信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用ContentProvider內容提供者的技術來獲取手機上的聯系人,比如開發軟件時,如果您的好友也是軟件用戶,則可以通過手機聯系人直接添加好友
下面是實現步驟
這里就模仿一下獲得
首先在你的界面打一個按鈕來獲得
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="獲取手機聯系人"android:onClick="getContacts"/>然后在相對應的的activity中編寫以下代碼 public class MainActivity extends AppCompatActivity {private ContentResolver cr;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//獲取內容訪問者cr = getContentResolver();}//定義獲得聯系人的方法public void getContacts(View view){//解析URI content://com.android.contacts/raw_contacts是獲得聯系人的協議//記得加content://Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");Cursor cursor=cr.query(uri,null,null,null,null);while (cursor.moveToNext()){//獲得聯系人的idint _id=cursor.getInt(cursor.getColumnIndex("_id"));//獲得聯系人姓名String display_name=cursor.getString(cursor.getColumnIndex("display_name"));//循環打印你所有的聯系人Log.i("test",_id+" "+display_name);//循環獲得聯系人的信息//"content://com.android.contacts/raw_contacts/"+_id+"/data" 協議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"));//如果是電話,則打印// vnd.android.cursor.item/phone_v2是聯系人姓名,同樣的還有email,住址等if("vnd.android.cursor.item/phone_v2".equals(mimetype)){//Log.i("test"," "+mimetype+" "+data1);}}}}}
因為現在的手機越來越高級,處理的比較好,所以最后記得添加權限 <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
當然,有一些手機的權限還是比較高還是拿不到聯系人是有可能的、
總結
以上是生活随笔為你收集整理的获取ContentProvider来获取手机所有的联系人及联系人信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 05-【istio】-【istio介绍】
- 下一篇: 解决报错:WebSocket conne