360-读取手机联系人
1.读取手机联系人是一个复杂的操作所以一般放在一个新的线程中。
2.获取一个ContentResolver.
ContentResolver resolver =getContentResolver();
3.对Resolver进行查询操作
new Thread(){
public void run() {
//获取内容提供者
ContentResolver resolver =getContentResolver();
//进行查询操作,获取存在表中的数据,获取唯一的ID,根据ID查询下面的数据
Cursor cursor=resolver.query(Uri.parse(urlString), new String[]{"contact_id"}, null, null, null);
while (cursor.moveToNext()) {
//因为只有一个数据所以传入0就可以
String id =cursor.getString(0);
Log.e("ChainLog","+++++++++++++++++" +id);
ContentResolver indexre =getContentResolver();
//根据ID查询数据和数据对应的类型
Cursor indexCursor =indexre.query(Uri.parse("content://com.android.contacts/data"),
new String[]{"data1","mimetype"}, "raw_contact_id=?", new String[]{id}, null);
//生成一个MAP对象来存储数据
HashMap<String, String> hashMap =new HashMap<String, String>();
while (indexCursor.moveToNext()) {
//Log.e("ChainLog", indexCursor.getString(0)) ;
//Log.e("ChainLog", indexCursor.getString(1)) ;
String type =indexCursor.getString(1);
String dataString=indexCursor.getString(0);
//判断是否为空
if(!TextUtils.isEmpty(dataString)){
//判断类型如果是姓名
if(type.equals("vnd.android.cursor.item/name")){
hashMap.put("name", dataString);
Log.e("ChainLog", "名字是"+dataString);
//判断类型是否为电话号码
}else if (type.equals("vnd.android.cursor.item/phone_v2")) {
hashMap.put("phone", dataString);
Log.e("ChainLog", "电话是"+dataString);
}
}
}
indexCursor.close();
//将数据存放到list集合中
list.add(hashMap);
}
handler.sendEmptyMessage(0);
cursor.close();
};
}.start();
5.生成Adpter来存放数据
//生成一个Adapter
public class MyAdapter extends BaseAdapter{
public int getCount() {
// 返回list的长度
return list.size();
}
public HashMap<String, String> getItem(int arg0) {
// 返回每一个条目的东西(声明为MAP类型)
return list.get(arg0); //返回list中的数据
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
public View getView(int arg0, View arg1, ViewGroup arg2) {
//自定义view
View view =View.inflate(MainActivity.this, R.layout.contact_list, null);
TextView tv_name=(TextView) view.findViewById(R.id.tv_name);
TextView tv_phone=(TextView) view.findViewById(R.id.tv_phone);
tv_name.setText(getItem(arg0).get("name"));
tv_phone.setText(getItem(arg0).get("phone"));
return view;
}
}
6.设置每一个条目的点击事件
mlist=(ListView)findViewById(R.id.list_contact);
mlist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
mAdapter= new MyAdapter();
if (mAdapter!=null) {
HashMap<String, String> map= mAdapter.getItem(arg2);
String phoneString= map.get("phone");
Toast.makeText(MainActivity.this, phoneString, 0).show();
}
}
});
360-读取手机联系人相关推荐
- 读取手机联系人,并用listview显示
读取手机联系人,用到的就是一个contentprovider. 数据库里面有三张重要的表 raw_contact 里面有所有联系人的数据 data 每个联系人的所有数据 mime-type 每条数据的 ...
- Android 保存号码至已有联系人,新建联系人,读取手机联系人
添加必要的权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> & ...
- java 添加手机联系人_Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结...
本文实例讲述了Android编程实现读取手机联系人.拨号.发送短信及长按菜单操作方法.分享给大家供大家参考,具体如下: 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下 ...
- java 获取手机联系人_Android 读取手机联系人、拨号、发送短信及长按菜单的操作...
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- 读取手机联系人简单方法(id,姓名,手机号)
<uses-permission android:name="android.permission.READ_CONTACTS"/> 布局文件 <?xml ver ...
- Android内容提供者(读取手机联系人信息)
工程目录: Manifestes加入读取联系人权限 <uses-permission android:name="android.permission.READ_CONTACTS&qu ...
- Android使用READ_CONTACTS读取手机联系人
实例代码: package com.example.readcontacts;import java.io.InputStream; import java.util.ArrayList;import ...
- Android程序如何读取手机联系人
导出手机联系人数据库,找到数据的存储结构 数据库位置: /data/data/com.android.providers.contacts/databases/contacts2.db 重要的三张表: ...
- html5调用联系人列表,h5+ 读取手机联系人并渲染
完整的代码 v-for="(contactObj, index) in item.contactArr" :key="index" :title="c ...
- Android项目——读取手机联系人信息
加入读取联系人信息的权限 <uses-permission android:name="android.permission.READ_CONTACTS"/> cont ...
最新文章
- 启动ServerManager
- Windows学习总结(6)——MindManager新手入门教程
- dvd vlc 复制_如何使用VLC翻录DVD
- 西雅图治安_数据科学家对西雅图住宿业务的分析
- vs2010常见错误记录
- 简单的策略模式Strategy演示
- 使用python制作ArcGIS插件(5)其他技巧
- php inputcsv,php实现CSV文件导入和导出
- python:使用strip()去掉首尾空格
- php中合并数组保留键值,如何使用php合并数组并保留键值的方法
- ForkJoinPool 详解
- 手游开发者大会交流OGEngine新版本发布
- 实验一:数据结构之顺序表例程 简易电话薄
- 【点云3D目标检测】跑通CIA-SSD过程中的一些报错集锦
- CSDN-markdown语法之如何插入图片
- 20230407 定时闹钟
- 171002 逆向-Reversing.kr(AutoHotKey)
- Java实验报告之java面向对象编程
- 【财经期刊FM-Radio|2020年11月19日】
- 发那科2021参数_发那科系统FANUC:参数修改。
热门文章
- Yii2使用PHPExcel读取excel
- 神经网络模型的训练过程,神经网络模型训练过程
- 解决:Error: Continuous value supplied to discrete scale
- 【校园招聘】不知道校园招聘是什么?怎么拿BAT,TMD的offer?
- 谷歌浏览器皮肤怎么换 修改谷歌浏览器皮肤的方法
- 飞机游戏,飞机大战,c#,源代码
- 分析:2014年“净网行动”大风暴来袭
- 解决ORCLE-ORA-01122 01110 01210
- 刚刚!科技部、教育部公布重磅名单!20所“双一流”高校入选
- java获取微信小程序码和小程序二维码