博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内容提供者Content Provider
阅读量:5807 次
发布时间:2019-06-18

本文共 4176 字,大约阅读时间需要 13 分钟。

*读取联系人

StringBuilder sb = new StringBuilder();// 1:得到中间人。ContentResolver resolver = getContentResolver();// 2:地址。// contacts;com.android.contacts:表示2个都可以String raw_contact_host = "content://com.android.contacts/raw_contacts";String data_host = "content://com.android.contacts/data";Uri uri = Uri.parse(raw_contact_host);Uri data_uri = Uri.parse(data_host);// 3:查询数据。Cursor cursor = resolver.query(uri, new String[] { "_id", "display_name" }, null, null, null);while (cursor.moveToNext()) {    // contact_id    int id = cursor.getInt(cursor.getColumnIndex("_id"));    // ContentResolver resolver2 = getContentResolver();    Cursor data_cursor = resolver.query(data_uri, null, "raw_contact_id=?", new String[] { id + "" }, null)    while (data_cursor.moveToNext()) {        String mimytype = data_cursor.getString(data_cursor.getColumnIndex("mimetype"));        String data = data_cursor.getString(data_cursor.getColumnIndex("data1"));        if (mimytype.equals("vnd.android.cursor.item/phone_v2")) {            // 电话号码            sb.append("电话号码:" + data);        } else if (mimytype.equals("vnd.android.cursor.item/name")) {            sb.append("名字:" + data);        } else if (mimytype.equals("vnd.android.cursor.item/organization")) {            sb.append("组织:" + data);        }    }    // data_cursor.close();    String display_name = cursor.getString(cursor.getColumnIndex("display_name"));    sb.append("姓名:" + display_name);}cursor.close();return sb.toString();

*读取短信

resolver = getContentResolver();add = "content://sms/";uri = Uri.parse(add);// 1:得到中间人。// 2:知道地址。// 查询所有的短信。// address:表示发短信的号码,date;发送的日期.body:发送的内容:这些都需要查看表才知道,不需要记忆。Cursor cursor = resolver.query(uri, new String[] { "address", "date", "body" }, null, null, null);while (cursor.moveToNext()) {    String address = cursor.getString(cursor.getColumnIndex("address"));    String body = cursor.getString(cursor.getColumnIndex("body"));    int date = cursor.getInt(cursor.getColumnIndex("date"));    System.out.println(address + "--" + body + "----" + date);}cursor.close();

*内容提供者

/* * authorities  ;主机名。 * 1:创建一些地址。 * http://www.sina.com/index.html * 访问别人的数据。 * content://主机名/ * content://com.qf.day15_sqlitedemo1.person/person ------1 */public class PersonContentProvider extends ContentProvider {    private  static UriMatcher match;    private static final String AUTHORITIES = "com.qf.day15_sqlitedemo1.person";    private PersonSqliteOpenHelper helper;    private SQLiteDatabase db;    static{        //创建匹配器。        match = new UriMatcher(UriMatcher.NO_MATCH);//当不匹配的时候就返回-1        //http://www.sina.com/        //content://com.qf.day15_sqlitedemo1.person/person        match.addURI(AUTHORITIES, "person", 1);//表示查询person里面的所有数据。        match.addURI(AUTHORITIES, "person_id/#", 2);//表示查询person表中的id号为固定值的数据。        match.addURI(AUTHORITIES, "person_name/*", 3);    }    //内容提供者创建的时候调用。    @Override    public boolean onCreate() {        helper = new PersonSqliteOpenHelper(getContext());        db = helper.getWritableDatabase();        return true;    }    //查询    @Override    public Cursor query(Uri uri, String[] projection, String selection,            String[] selectionArgs, String sortOrder) {        Cursor cursor = null;        //将别的应用的地址跟我们自己定义的地址进行匹配。        int code = match.match(uri);        System.out.println(code);        //对值进行判断。        if(code==1){            cursor = db.query("person", projection, selection, selectionArgs, null, null, null);        }else if(code==2){            //获得id号            int id =Integer.parseInt( uri.getLastPathSegment());            cursor = db.query("person", projection, "_id=?", new String[]{id+""}, null, null, null);        }        return cursor;    }    //返回类型--一般不用    @Override    public String getType(Uri uri) {        return null;    }    //插入数据    @Override    public Uri insert(Uri uri, ContentValues values) {        return null;    }    //删除数据    @Override    public int delete(Uri uri, String selection, String[] selectionArgs) {        return 0;    }    //更新数据    @Override    public int update(Uri uri, ContentValues values, String selection,            String[] selectionArgs) {        return 0;    }}

 注:记得配置读写短信和读写联系人的权限

 

转载地址:http://jdubx.baihongyu.com/

你可能感兴趣的文章
hive基本操作与应用
查看>>
excel快捷键设置
查看>>
poj3692
查看>>
python之信号量【Semaphore】
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
[Vim] 搜索模式(正则表达式)
查看>>
#HTTP协议学习# (二)基本认证
查看>>
Android开发之线性布局详解(布局权重)
查看>>
WCF
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
Android实例-录音与回放(播放MP3)(XE8+小米2)
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>