package com.example.my35.test1;
/**
* 作者:created by meixi
* 邮箱:1085220040@qq.com
* 日期:2019/11/5 17:12
*/
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.CommonDataKinds.Im;
import android.provider.ContactsContract.CommonDataKinds.Nickname;
import android.provider.ContactsContract.CommonDataKinds.Note;
import android.provider.ContactsContract.CommonDataKinds.Organization;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
public class ContactType {
private final Context context;
private JSONObject contactData;
private JSONObject jsonObject;
public ContactType(Context context) {
this.context = context;
}
//获取联系人所有信息(这里返回String,你也可以直接返回其他类型改改就可以了)
public String getInformation() throws JSONException {
contactData = new JSONObject();
int num = 0;
// 获得所有的联系人
Cursor cur = context.getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
null,
null,
null,
ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC");
// 循环遍历
if (cur.moveToFirst()) {
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
do {
jsonObject = new JSONObject();
contactData.put("information" + num, jsonObject);
num++;
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur
.getInt(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
jsonObject.put("name", disPlayName);
if (phoneCount > 0) {
// 获得联系人的电话号码
Cursor phones = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phones.moveToFirst()) {
do {
// 遍历所有的电话号码
int phoneType = phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); // 手机
// 住宅电话
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) {
String homeNum = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("homeNum", homeNum);
}
// 单位电话
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_WORK) {
String jobNum = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("jobNum", jobNum);
}
// 单位传真
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK) {
String workFax = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("workFax", workFax);
}
// 住宅传真
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME) {
String homeFax = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("homeFax", homeFax);
} // 寻呼机
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_PAGER) {
String pager = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("pager", pager);
}
// 回拨号码
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_CALLBACK) {
String quickNum = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("quickNum", quickNum);
}
// 公司总机
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN) {
String jobTel = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("jobTel", jobTel);
}
// 车载电话
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_CAR) {
String carNum = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("carNum", carNum);
} // ISDN
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_ISDN) {
String isdn = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("isdn", isdn);
} // 总机
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_MAIN) {
String tel = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("tel", tel);
}
// 无线装置
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_RADIO) {
String wirelessDev = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("wirelessDev", wirelessDev);
} // 电报
if (phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_TELEX) {
String telegram = phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
jsonObject.put("telegram", telegram);
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Android获取手机通讯录信息demo (196个子文件)
app-release.apk 1.81MB
gradlew.bat 2KB
executionHistory.bin 4.32MB
classAnalysis.bin 893KB
fileHashes.bin 249KB
outputFiles.bin 100KB
taskHistory.bin 41KB
resourceHashesCache.bin 18KB
last-build.bin 1B
.gitignore 222B
.gitignore 8B
build.gradle 1KB
build.gradle 713B
settings.gradle 41B
gradlew 5KB
app.iml 13KB
My35.iml 876B
gradle-wrapper.jar 53KB
ContactType.java 17KB
DiweiActivity.java 7KB
ZQImageViewRoundOval.java 6KB
ExpandTextView.java 4KB
LikePopupWindow.java 3KB
MainActivity.java 3KB
CodeUtils.java 3KB
TongxunluActivity.java 2KB
Utils.java 2KB
ReturnTestActivity.java 1KB
YuanjiaoActivity.java 921B
Mylinearlayou.java 902B
LgqLogutil.java 811B
Mytext.java 802B
CommonUtils.java 779B
ExampleInstrumentedTest.java 775B
BuildConfig.java 439B
App.java 406B
ExampleUnitTest.java 393B
Test3.java 154B
Test2.java 152B
output.json 234B
buildOutputCleanup.lock 17B
executionHistory.lock 17B
javaCompile.lock 17B
fileHashes.lock 17B
fileContent.lock 17B
.name 4B
ttpp.png 336KB
ic_launcher_round.png 15KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher_round.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
proguard-rules.pro 772B
gradle.properties 1KB
local.properties 468B
gradle-wrapper.properties 238B
cache.properties 53B
gc.properties 0B
gc.properties 0B
gradle_models.ser 143KB
build_file_checksums.ser 545B
workspace.xml 48KB
ic_launcher_background.xml 6KB
activity_main.xml 4KB
comments_drawable_white.xml 3KB
Project.xml 3KB
dialog_like.xml 2KB
ic_launcher_foreground.xml 2KB
AndroidManifest.xml 1KB
heart_drawable_white.xml 1KB
yuanjiao.xml 1KB
Gradle__androidx_test_espresso_espresso_idling_resource_3_1_0_alpha3_aar.xml 1KB
Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml 1009B
Gradle__androidx_test_espresso_espresso_idling_resource_3_1_1_aar.xml 976B
Gradle__androidx_test_espresso_espresso_core_3_1_0_alpha3_aar.xml 948B
dinwei.xml 935B
Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml 932B
Gradle__com_jakewharton_butterknife_runtime_10_2_0_aar.xml 927B
Gradle__com_jakewharton_butterknife_runtime_10_0_0_aar.xml 927B
Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml 920B
Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml 912B
Gradle__androidx_test_espresso_espresso_core_3_1_1_aar.xml 899B
Gradle__com_jakewharton_butterknife_8_6_0_aar.xml 882B
Gradle__androidx_test_monitor_1_1_0_alpha3_aar.xml 879B
Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml 872B
Gradle__androidx_test_runner_1_1_0_alpha3_aar.xml 872B
Gradle__com_jakewharton_butterknife_10_2_0_aar.xml 871B
Gradle__com_jakewharton_butterknife_10_0_0_aar.xml 871B
Gradle__com_android_support_test_monitor_1_0_2_aar.xml 862B
Gradle__com_android_support_test_runner_1_0_2_aar.xml 856B
Gradle__androidx_appcompat_appcompat_1_0_0_aar.xml 848B
Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml 848B
Gradle__com_jakewharton_butterknife_annotations_10_2_0_jar.xml 847B
Gradle__com_jakewharton_butterknife_annotations_10_0_0_jar.xml 847B
Gradle__androidx_fragment_fragment_1_0_0_aar.xml 840B
共 196 条
- 1
- 2
资源评论
meixi_android
- 粉丝: 290
- 资源: 105
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功