ContentProvider实现数据共享 查询手机内置联系人
来源:互联网 发布:透视变换算法 编辑:程序博客网 时间:2024/04/30 06:47
Android系统中提供了很多预定义的Content Provider(声音,图片,视频,联系人等),开发人员可以通过查询这些provider以获得其中包含的信息。
Browser 读取或者需改书签浏览历史或网络搜索CallLog查看和更新通话记录Contacts获取,修改或保存联系
人信息MediaStore 访问声音、视频、音乐Setting查看获取蓝牙设置、铃声等其他设置
在实际的操作中,我们通常不会直接对Content Provider直接进行操作,而是通过对ContentResolver对象进行操作,开发人员可以通过调用Activity或其他应用程序组件的实现类中的getContentResolver()方法来获得ContentProvider对象
ContentResolver cr = getContentResolver();
通过对cr的操作来实现数据的操作
1.查询
cr.query();
返回的对象为一个游标 cursor,它能遍历各行各列来读取各个字段的值。
2.增加
cr.insert();
传递provider的URL参数和ContentValues映射,该方法的返回新纪录的完整URL
3.更新
cr.update();
需要提供需要修改的列名、值
4.删除
cr.delete();
如果删除单行,可以调用ContentProvider.delete()方法并提供特定行的URL
如果删除多行,可以结合SQLWHERE语句进行操作。
例子:查询手机联系人的电话和姓名
在MainActivity中创建如下的方法,用于获取用户的数据信息
private String getQueryData(){
StringBuilder sb = new StringBuilder();//用于保存字符串
ContentResolver resolver = getContentResolver();//获得ContentResolver对象
Cursor cursor = resolver.query(Contacts.CONTENT_URL,null,ull,null,null);查询记录,参数为查询的条件等
while(cursor.moveToNext()){
int idIndex = cursor.getColumnIndex(Contacts._ID);//获取ID值的索引
int displayNameIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);//获取姓名索引
int id = cursor.getInt(idIndex);//获取id,通过索引获取相应的值
String name = cursor.getString(displayNameIndex);
Cursor phone = resolver.query(Phone.CONTENT_URL,null,Phone.CONTENT._ID+"="+id,null,null);
while(phone.moveToNext()){
int phoneNumberIndex = phone.getColumnIndex(Phone.NUMBER);
String number = Phone.getString(phoneNumberIndex);
sb.append(name+":"+number+"\n");
}
}
cursor.close();
return sb.toString();
}
- ContentProvider实现数据共享 查询手机内置联系人
- 利用ContentProvider查询手机联系人
- ContentProvider实现程序之间共享数据(如短信、联系人)
- Android学习笔记十七.使用ContentProvider实现数据共享(四).操作系统(联系人)的ContentProvider
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- Android-数据存储(Content Provider ,调用系统 联系人 ContentProvider实现查询和增加联系人)
- 4 个月学习 iOS 开发的经验 (0基础到上架 App Store)
- 模拟器定位帖子
- linux发行版的分析比较
- apache mina
- golang语法总结(十七):函数
- ContentProvider实现数据共享 查询手机内置联系人
- iOS中UITextView遇到的问题总结
- windows和linux下等待线程的退出
- htm、html、shtm、shtml的区别与联系
- 集训队专题(6)1005 Uncle Tom's Inherited Land*
- linux下载文件命令wget
- java中Double类型数据保留两位(非四舍五入)
- kbhit() 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
- 公有继承或者公有多继承是可以用::符号