首页 > 系统 > Android > 正文

Android ContentResolver读取手机系统数据<联系人>

2019-11-09 15:18:53
字体:
来源:转载
供稿:网友

1.新建布局文件:

<?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.asus.android_25_contentPRovider.MainActivity">    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="获取联系人"        android:onClick="getContacts"        />    <ListView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/lv_main_listview"        >    </ListView></LinearLayout>
2.适配器布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/tv_items_id"        android:layout_weight="1"        />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/tv_items_name"        android:layout_weight="1"        />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/tv_items_tel"        android:layout_weight="1"        /></LinearLayout>

3.MainActivity:

package com.asus.android_25_contentprovider;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 android.widget.SimpleCursorAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {    private ContentResolver cr;    private Cursor cursor;    private Cursor cursorData;    private List<Map<String,Object>> list=new ArrayList<>();    private ListView lv_main_listview;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cr = getContentResolver();        lv_main_listview = (ListView) findViewById(R.id.lv_main_listview);    }    public void getContacts(View view){        //获取联系人raw_contacts        Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");        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);            Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data");            cursorData = cr.query(uriData,null,null,null,null);            while(cursorData.moveToNext()){                String tel= cursorData.getString(cursorData.getColumnIndex("data1"));                String type= cursorData.getString(cursorData.getColumnIndex("mimetype"));                if("vnd.android.cursor.item/phone_v2".equals(type)){                    Map<String,Object> map=new HashMap<String,Object>();                    map.put("id",id);                    map.put("name",name);                    map.put("tel",tel);                    list.add(map);                    Log.i("test","        "+tel+":"+type);                }            }        }        SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.items_listview,new String[]{"id","name","tel"},new int[]{R.id.tv_items_id,R.id.tv_items_name,R.id.tv_items_tel});        lv_main_listview.setAdapter(simpleAdapter);    }}4.因为是手机系统数据,所以要在AndroidManifest.xml中设置权限

<!--读取联系人权限--><uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表