系统联系人
2016-05-28 10:18
176 查看
package com.example.day_08_contacts;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
// 系统联系人基本信息对应的uri
public String raw_contacts = "content://com.android.contacts/raw_contacts";
//系统联系人详细信息
public String data = "content://com.android.contacts/data";
private List<User> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 查询练习人
public void select(View v) {
list = new ArrayList<User>();
// 内容解析者
ContentResolver contentResolver = getContentResolver();
// 查询每个联系人对应的_id
Cursor cursor_id = contentResolver.query(Uri.parse(raw_contacts), new String[] { "_id" },
null, null, null);
while (cursor_id.moveToNext()) {
//while循环取出_id
String id = cursor_id.getString(cursor_id.getColumnIndex("_id"));
// System.out.println(id);
//通过_id查询系统联系人详细信息,正常逻辑是查询mimetype_id列,在通过查询到的mimetype_id去mimetypes里查询该id对应mimetype值是多少
//但是谷歌工程师已经将mimetype直接在源码里查询出来了,所以查询mimetype就能查到mimetype的值
Cursor data_cursor = contentResolver.query(Uri.parse(data), new String[]{"mimetype","data1"},
"raw_contact_id = ? ", new String[]{id}, null);
// Cursor data_cursor = contentResolver.query(Uri.parse(data), null,
// null, null, null);
// String[] columnNames = data_cursor.getColumnNames();
// for(String name:columnNames){
// System.out.println(name);
// }
while (data_cursor.moveToNext()) {
User user=new User();
//
String data1 = data_cursor.getString(data_cursor.getColumnIndex("data1"));
String mimetype = data_cursor.getString(data_cursor.getColumnIndex("mimetype"));
System.out.println(data1+"==="+mimetype);
// 04-14 04:23:48.777: I/System.out(3138): 1
// 388-888-8888===vnd.android.cursor.item/phone_v2
// 04-14 04:23:48.777: I/System.out(3138):
// Zhncccccccccc===vnd.android.cursor.item/postal-address_v2
// 04-14 04:23:48.777: I/System.out(3138):
// 8888@.163.comc===vnd.android.cursor.item/email_v2
// 04-14 04:23:48.777: I/System.out(3138):
// 侯江涛===vnd.android.cursor.item/name
if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
user.phone=
data1;
}else if("vnd.android.cursor.item/postal-address_v2".equals(mimetype)){
user.address=data1;
}
list.add(user);
}
System.out.println("--------------------------------------------------------------------");
}
}
}
=====================================================================
/**
*
*/
package com.example.day_08_contacts;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* @author WJL
*
*/
public class MyAdapter extends BaseAdapter {
Context context;List<User> list;
public MyAdapter(Context context,List<User> list){
this.context=context;
this.list=list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(context, R.layout.item, null);
TextView address=
(TextView) view.findViewById(R.id.address);
TextView name=
(TextView) view.findViewById(R.id.name);
TextView phone=
(TextView) view.findViewById(R.id.phone);
TextView email=
(TextView) view.findViewById(R.id.email);
address.setText(list.get(position).address);
name.setText(list.get(position).name);
phone.setText(list.get(position).phone);
email.setText(list.get(position).email);
return view;
}
}
==============================================
/**
*
*/
package com.example.day_08_contacts;
/**
* @author WJL
*
*/
public class User {
public String phone;
public String address;
public String email;
public String name;
}
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
// 系统联系人基本信息对应的uri
public String raw_contacts = "content://com.android.contacts/raw_contacts";
//系统联系人详细信息
public String data = "content://com.android.contacts/data";
private List<User> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 查询练习人
public void select(View v) {
list = new ArrayList<User>();
// 内容解析者
ContentResolver contentResolver = getContentResolver();
// 查询每个联系人对应的_id
Cursor cursor_id = contentResolver.query(Uri.parse(raw_contacts), new String[] { "_id" },
null, null, null);
while (cursor_id.moveToNext()) {
//while循环取出_id
String id = cursor_id.getString(cursor_id.getColumnIndex("_id"));
// System.out.println(id);
//通过_id查询系统联系人详细信息,正常逻辑是查询mimetype_id列,在通过查询到的mimetype_id去mimetypes里查询该id对应mimetype值是多少
//但是谷歌工程师已经将mimetype直接在源码里查询出来了,所以查询mimetype就能查到mimetype的值
Cursor data_cursor = contentResolver.query(Uri.parse(data), new String[]{"mimetype","data1"},
"raw_contact_id = ? ", new String[]{id}, null);
// Cursor data_cursor = contentResolver.query(Uri.parse(data), null,
// null, null, null);
// String[] columnNames = data_cursor.getColumnNames();
// for(String name:columnNames){
// System.out.println(name);
// }
while (data_cursor.moveToNext()) {
User user=new User();
//
String data1 = data_cursor.getString(data_cursor.getColumnIndex("data1"));
String mimetype = data_cursor.getString(data_cursor.getColumnIndex("mimetype"));
System.out.println(data1+"==="+mimetype);
// 04-14 04:23:48.777: I/System.out(3138): 1
// 388-888-8888===vnd.android.cursor.item/phone_v2
// 04-14 04:23:48.777: I/System.out(3138):
// Zhncccccccccc===vnd.android.cursor.item/postal-address_v2
// 04-14 04:23:48.777: I/System.out(3138):
// 8888@.163.comc===vnd.android.cursor.item/email_v2
// 04-14 04:23:48.777: I/System.out(3138):
// 侯江涛===vnd.android.cursor.item/name
if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
user.phone=
data1;
}else if("vnd.android.cursor.item/postal-address_v2".equals(mimetype)){
user.address=data1;
}
list.add(user);
}
System.out.println("--------------------------------------------------------------------");
}
}
}
=====================================================================
/**
*
*/
package com.example.day_08_contacts;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
* @author WJL
*
*/
public class MyAdapter extends BaseAdapter {
Context context;List<User> list;
public MyAdapter(Context context,List<User> list){
this.context=context;
this.list=list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(context, R.layout.item, null);
TextView address=
(TextView) view.findViewById(R.id.address);
TextView name=
(TextView) view.findViewById(R.id.name);
TextView phone=
(TextView) view.findViewById(R.id.phone);
TextView email=
(TextView) view.findViewById(R.id.email);
address.setText(list.get(position).address);
name.setText(list.get(position).name);
phone.setText(list.get(position).phone);
email.setText(list.get(position).email);
return view;
}
}
==============================================
/**
*
*/
package com.example.day_08_contacts;
/**
* @author WJL
*
*/
public class User {
public String phone;
public String address;
public String email;
public String name;
}
相关文章推荐
- 在 Mac系统中,怎么能够连续的看图片
- 使用ListView应该注意的地方
- Maven+SpringMVC+Freemarker入门Demo
- SHOPNC2.4在PHP5.4下的调整
- python socket编程
- codeforces #354
- POJ_3692_kindergarten_最大团
- mysql中CONCAT值为空的问题解决办法
- 关于wifi portal认证--为浏览器添加wifi认证功能
- firewalld添加端口
- Java代码风格格式化和检查配置
- 一站式学习Wireshark(二):应用Wireshark观察基本网络协议
- 扫描音乐
- Dos命令查看端口占用及关闭进程
- 从文本文件中读取数据到集合中,并遍历集合
- Codeforces_(A).Array
- Java抽象类及子类实例化顺序和方法调用顺序测试
- 一站式学习Wireshark(一):Wireshark基本用法
- Java抽象类及子类实例化顺序和方法调用顺序测试
- Json解析