国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用ContentResolver獲取聯系人信息

2019-11-09 15:18:28
字體:
來源:轉載
供稿:網友

ContentResolver的作用:1、可以通過ContentResolver來獲取android內部的數據,比如聯系人信息、系統的多媒體信息、短信信息等等。

2、可以獲取提供了ContentPRovider的應用的數據。

ContentResolver的使用方法:(參考《瘋狂Android講義第三版》446面)

1、調用Context的getContentResolver()獲取ContentResolver對象。

2、根據需要調用ContentResolver的insert(),delete(),updata(),query方法操作數據庫

3、為了操作系統提供的ContentResolver,需要了解該ContentProvider的Uri,以及該ContentProvider所操作的數據列的列名,可以通過查閱Android官方文檔來獲取這些信息。

4、使用時牢記不要忘記在AndroidManifest中添加權限,并且要及時close掉curcor

下面來具體操作

first.首先需要知道獲取聯系人的URI

<1>content://com.android.contacts/raw_contacts(獲得聯系人的id,姓名)<2>content://com.android.contacts/raw_contacts/"+id+"/data(根據聯系人的id獲得聯系人的信息)短信。手機系統的表中,聯系人的 姓名、id 是在raw_contacs表,號碼、頭像、郵箱等信息又是在data表中,所以需要以上2個Uri來查詢聯系人信息,如果有興趣可以將自己的手機root查看手機系統文件second.需要在清單文件里添加獲取聯系人信息的權限
<!--添加聯系人權限--><uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>third.最后結果如圖,點擊按鈕獲取手機所有聯系人id,姓名,號碼

fourth.具體代碼

package com.zking.a24provider;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;import android.widget.ListView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Provider25Activity extends AppCompatActivity {    private ContentResolver cr;    private ListView provider25_listview;    private List<Map<String, Object>> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_provider25);        //展示聯系人的listview        provider25_listview = (ListView) findViewById(R.id.provider25_listview);        list = new ArrayList<>();        //得到內容訪問者        cr = getContentResolver();    }    //得到聯系人點擊事件    public void getRaw_contacs(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()){            //id            int id=cursor.getInt(cursor.getColumnIndex("_id"));            //姓名            String name=cursor.getString(cursor.getColumnIndex("display_name"));            //通過id得到data表中對應的電話號碼            Uri uri1=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data");            Cursor cursor1=cr.query(uri1,null,null,null,null);            while (cursor1.moveToNext()){                //電話號碼                String tel=cursor1.getString(cursor1.getColumnIndex("data1"));                String type=cursor1.getString(cursor1.getColumnIndex("mimetype"));                if(type.contains("phone")){                    Log.i("text",id+"   "+name+" "+tel);                    Map<String ,Object> map=new HashMap<>();                    map.put("id",id);                    map.put("name",name);                    map.put("tel",tel);                    list.add(map);                }            }        }        //使用SimpleAdapter來展示數據        SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.item_list,new String[]{"id","name","tel"},new int[]{R.id.tv_item_list_id,R.id.tv_item_list_name,R.id.tv_item_list_age});        //最后給listview設置適配器        provider25_listview.setAdapter(simpleAdapter);    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临泽县| 南召县| 饶河县| 凤山县| 长泰县| 金湖县| 黑河市| 确山县| 罗平县| 新闻| 北川| 高要市| 苗栗县| 顺昌县| 兰考县| 荣昌县| 塔河县| 三门峡市| 巧家县| 永清县| 靖安县| 云浮市| 多伦县| 水富县| 大同县| 鄯善县| 石门县| 承德县| 桃江县| 五家渠市| 长春市| 衡阳县| 六枝特区| 卢湾区| 黑河市| 福州市| 岑巩县| 怀宁县| 普格县| 海宁市| 都匀市|