获取手机联系人姓名,电话
来源:互联网 发布:机房控制软件 编辑:程序博客网 时间:2024/04/29 08:59
- 1,添加权限
<!-- 获取通讯录权限 -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
- 2,代码,跳转
Intent intent3 = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent3, REQUEST_ADDPHONE);
- 3,获取得到的结果
switch (requestCode) {
case REQUEST_ADDPHONE:
if (resultCode == RESULT_OK) {
try {
//处理返回的data,获取选择的联系人信息
Uri contactData = data.getData();
Cursor cursor = getContentResolver().query(contactData, null, null, null, null);
cursor.moveToFirst();
String[] str_data = PhoneUtils.getContactPhone(cursor,this);
Log.d("date",str_data[0] + str_data[1]);
Toast.makeText(this, str_data[0] + str_data[1] ,Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(this, "获取联系人失败", Toast.LENGTH_SHORT).show();
}
}
break;
}
- 4,工具类
public class PhoneUtils {
public static String[] getContactPhone(Cursor cursor, Context context) {
int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
int phoneNum = cursor.getInt(phoneColumn);
String[] str = new String[2];
String username = "";
String result = "";
if (phoneNum > 0) {
// 获得联系人的ID号
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
String contactId = cursor.getString(idColumn);
// 获得联系人电话的cursor
Cursor phone = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
if (phone.moveToFirst()) {
for (; !phone.isAfterLast(); phone.moveToNext()) {
int index = phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String phoneNumber = phone.getString(index);
str[0] = phoneNumber;
username = getContactNameFromPhoneBook(context, phoneNumber);
str[1] = username;
}
if (!phone.isClosed()) {
phone.close();
}
}
}
return str;
}
public static String getContactNameFromPhoneBook(Context context, String phoneNum) {
String contactName = "";
ContentResolver cr = context.getContentResolver();
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?",
new String[]{phoneNum}, null);
if (pCur.moveToFirst()) {
contactName = pCur
.getString(pCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
pCur.close();
}
return contactName;
}
}
<!-- 获取通讯录权限 -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
- 2,代码,跳转
Intent intent3 = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent3, REQUEST_ADDPHONE);
- 3,获取得到的结果
switch (requestCode) {
case REQUEST_ADDPHONE:
if (resultCode == RESULT_OK) {
try {
//处理返回的data,获取选择的联系人信息
Uri contactData = data.getData();
Cursor cursor = getContentResolver().query(contactData, null, null, null, null);
cursor.moveToFirst();
String[] str_data = PhoneUtils.getContactPhone(cursor,this);
Log.d("date",str_data[0] + str_data[1]);
Toast.makeText(this, str_data[0] + str_data[1] ,Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(this, "获取联系人失败", Toast.LENGTH_SHORT).show();
}
}
break;
}
- 4,工具类
public class PhoneUtils {
public static String[] getContactPhone(Cursor cursor, Context context) {
int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
int phoneNum = cursor.getInt(phoneColumn);
String[] str = new String[2];
String username = "";
String result = "";
if (phoneNum > 0) {
// 获得联系人的ID号
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
String contactId = cursor.getString(idColumn);
// 获得联系人电话的cursor
Cursor phone = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
if (phone.moveToFirst()) {
for (; !phone.isAfterLast(); phone.moveToNext()) {
int index = phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String phoneNumber = phone.getString(index);
str[0] = phoneNumber;
username = getContactNameFromPhoneBook(context, phoneNumber);
str[1] = username;
}
if (!phone.isClosed()) {
phone.close();
}
}
}
return str;
}
public static String getContactNameFromPhoneBook(Context context, String phoneNum) {
String contactName = "";
ContentResolver cr = context.getContentResolver();
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?",
new String[]{phoneNum}, null);
if (pCur.moveToFirst()) {
contactName = pCur
.getString(pCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
pCur.close();
}
return contactName;
}
}
阅读全文
1 0
- 获取手机联系人姓名,电话
- 手机联系人信息获取(头像,电话,姓名)
- Android获取手机联系人姓名电话
- android获取手机联系人信息(电话,邮箱,姓名,头像)
- 获取联系人姓名和电话
- 读取手机联系人,复杂(姓名,电话,邮箱)
- Android获取联系人姓名和电话
- 获取手机联系人信息(姓名 电话号码)
- android手机获取联系人姓名和电话号码
- Android简单获取手机联系人姓名电话号码
- android:获取联系人信息(姓名和电话)
- android:获取联系人原理(姓名和电话)详解
- Android开发获取联系人信息&根据姓名查找电话%根据电话查找姓名
- Android读取联系人姓名、电话
- 查询联系人姓名和电话
- android获取联系人权限,然后从日志中打印输出联系人姓名和电话
- 安桌获取手机联系人的电话与email
- Android获取联系人信息[名字,手机,电话,公司名称,昵称]
- initdb -s参数仅输出错误日志或告警信息
- Hash Table -- Leetcode problem500:Keyboard Row
- 网站反爬虫分析
- 8 易彰彪的一张表
- phoenix根据日期范围查询
- 获取手机联系人姓名,电话
- Unity最新的视频插件(非常简单)
- SPI 的 CPOL CPHA
- setInterval前端定时器的坑
- 【PDF下载】阿里研发峰会之淘宝直播敏捷实践
- 十三、Git中的那些坑
- ios审核4.3,以及掉坑后的感想
- (转载)技术总结
- centos7 修改Jenkins根目录