android获取所有联系人信息
2012-11-23 13:58
465 查看
这个是代码
[java]
view plaincopyprint?
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
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;
public class ContactActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获得所有的联系人
Cursor cur = 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 {
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur
.getInt(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
Log.i("username", disPlayName);
if (phoneCount > 0) {
// 获得联系人的电话号码
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phones.moveToFirst()) {
do {
// 遍历所有的电话号码
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String phoneType = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
Log.i("phoneNumber", phoneNumber);
Log.i("phoneType", phoneType);
} while (phones.moveToNext());
}
}
// 获取该联系人邮箱
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (emails.moveToFirst()) {
do {
// 遍历所有的电话号码
String emailType = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
String emailValue = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.i("emailType", emailType);
Log.i("emailValue", emailValue);
} while (emails.moveToNext());
}
// 获取该联系人IM
Cursor IMs = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Im.PROTOCOL, Im.DATA },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Im.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (IMs.moveToFirst()) {
do {
String protocol = IMs.getString(IMs
.getColumnIndex(Im.PROTOCOL));
String date = IMs
.getString(IMs.getColumnIndex(Im.DATA));
Log.i("protocol", protocol);
Log.i("date", date);
} while (IMs.moveToNext());
}
// 获取该联系人地址
Cursor address = getContentResolver()
.query(
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (address.moveToFirst()) {
do {
// 遍历所有的地址
String street = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String region = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postCode = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String formatAddress = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
Log.i("street", street);
Log.i("city", city);
Log.i("region", region);
Log.i("postCode", postCode);
Log.i("formatAddress", formatAddress);
} while (address.moveToNext());
}
// 获取该联系人组织
Cursor organizations = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Organization.COMPANY,
Organization.TITLE },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Organization.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (organizations.moveToFirst()) {
do {
String company = organizations.getString(organizations
.getColumnIndex(Organization.COMPANY));
String title = organizations.getString(organizations
.getColumnIndex(Organization.TITLE));
Log.i("company", company);
Log.i("title", title);
} while (organizations.moveToNext());
}
// 获取备注信息
Cursor notes = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Note.NOTE },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Note.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (notes.moveToFirst()) {
do {
String noteinfo = notes.getString(notes
.getColumnIndex(Note.NOTE));
Log.i("noteinfo", noteinfo);
} while (notes.moveToNext());
}
// 获取nickname信息
Cursor nicknames = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Nickname.NAME },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Nickname.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (nicknames.moveToFirst()) {
do {
String nickname_ = nicknames.getString(nicknames
.getColumnIndex(Nickname.NAME));
Log.i("nickname_", nickname_);
} while (nicknames.moveToNext());
}
} while (cur.moveToNext());
}
}
}
权限
[java]
view plaincopyprint?
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
以上的是获取所有的联系人,在获取的时候会获取 sim卡 和手机本地中的所有的信息,如果在实际操作中要区分出是要求 sim卡中号码 还是 手机本地中的号码 则可以用下面的方法
[java]
view plaincopyprint?
首先是手机本地:Cursor cursor = getContentResolver().query(People.CONTENT_URI, null,
null, null, null);
while (cursor.moveToNext()) {
ContactInfo cci = new ContactInfo();
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME);
cci.contactName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER);
cci.userNumber = cursor.getString(numberFieldColumnIndex);
cci.userNumber = GetNumber(cci.userNumber);
cci.isChecked = false;
if (IsUserNumber(cci.userNumber)) {
if (!IsContain(contactList, cci.userNumber)) {
if(IsAlreadyCheck(wNumStr, cci.userNumber)){
cci.isChecked = true;
numberStr += "," + cci.userNumber;
}
contactList.add(cci);
//Log.i("eoe", "*********"+cci.userNumber);
}
}
}
cursor.close();
}
[java]
view plaincopyprint?
下面是获取SIM卡:
//从SIM卡中取号
private void GetSimContact(String add){
//读取SIM卡手机号,有两种可能:content://icc/adn与content://sim/adn
try {
Intent intent = new Intent();
intent.setData(Uri.parse(add));
Uri uri = intent.getData();
mCursor = getContentResolver().query(uri, null, null, null, null);
if (mCursor != null) {
while (mCursor.moveToNext()) {
ContactInfo sci = new ContactInfo();
// 取得联系人名字
int nameFieldColumnIndex = mCursor.getColumnIndex("name");
sci.contactName = mCursor.getString(nameFieldColumnIndex);
// 取得电话号码
int numberFieldColumnIndex = mCursor
.getColumnIndex("number");
sci.userNumber = mCursor.getString(numberFieldColumnIndex);
sci.userNumber = GetNumber(sci.userNumber);
sci.isChecked = false;
if (IsUserNumber(sci.userNumber)) {
if (!IsContain(contactList, sci.userNumber)) {
if(IsAlreadyCheck(wNumStr, sci.userNumber)){
sci.isChecked = true;
numberStr += "," + sci.userNumber;
}
contactList.add(sci);
//Log.i("eoe", "*********"+sci.userNumber);
}
}
}
mCursor.close();
}
} catch (Exception e) {
Log.i("eoe", e.toString());
}
}
[java]
view plaincopyprint?
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
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;
public class ContactActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获得所有的联系人
Cursor cur = 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 {
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur
.getInt(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
Log.i("username", disPlayName);
if (phoneCount > 0) {
// 获得联系人的电话号码
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phones.moveToFirst()) {
do {
// 遍历所有的电话号码
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String phoneType = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
Log.i("phoneNumber", phoneNumber);
Log.i("phoneType", phoneType);
} while (phones.moveToNext());
}
}
// 获取该联系人邮箱
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (emails.moveToFirst()) {
do {
// 遍历所有的电话号码
String emailType = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
String emailValue = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.i("emailType", emailType);
Log.i("emailValue", emailValue);
} while (emails.moveToNext());
}
// 获取该联系人IM
Cursor IMs = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Im.PROTOCOL, Im.DATA },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Im.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (IMs.moveToFirst()) {
do {
String protocol = IMs.getString(IMs
.getColumnIndex(Im.PROTOCOL));
String date = IMs
.getString(IMs.getColumnIndex(Im.DATA));
Log.i("protocol", protocol);
Log.i("date", date);
} while (IMs.moveToNext());
}
// 获取该联系人地址
Cursor address = getContentResolver()
.query(
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (address.moveToFirst()) {
do {
// 遍历所有的地址
String street = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String region = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postCode = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String formatAddress = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
Log.i("street", street);
Log.i("city", city);
Log.i("region", region);
Log.i("postCode", postCode);
Log.i("formatAddress", formatAddress);
} while (address.moveToNext());
}
// 获取该联系人组织
Cursor organizations = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Organization.COMPANY,
Organization.TITLE },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Organization.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (organizations.moveToFirst()) {
do {
String company = organizations.getString(organizations
.getColumnIndex(Organization.COMPANY));
String title = organizations.getString(organizations
.getColumnIndex(Organization.TITLE));
Log.i("company", company);
Log.i("title", title);
} while (organizations.moveToNext());
}
// 获取备注信息
Cursor notes = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Note.NOTE },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Note.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (notes.moveToFirst()) {
do {
String noteinfo = notes.getString(notes
.getColumnIndex(Note.NOTE));
Log.i("noteinfo", noteinfo);
} while (notes.moveToNext());
}
// 获取nickname信息
Cursor nicknames = getContentResolver().query(
Data.CONTENT_URI,
new String[] { Data._ID, Nickname.NAME },
Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
+ Nickname.CONTENT_ITEM_TYPE + "'",
new String[] { contactId }, null);
if (nicknames.moveToFirst()) {
do {
String nickname_ = nicknames.getString(nicknames
.getColumnIndex(Nickname.NAME));
Log.i("nickname_", nickname_);
} while (nicknames.moveToNext());
}
} while (cur.moveToNext());
}
}
}
import android.app.Activity; import android.database.Cursor; import android.os.Bundle; 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; public class ContactActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获得所有的联系人 Cursor cur = 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 { // 获得联系人的ID号 String contactId = cur.getString(idColumn); // 获得联系人姓名 String disPlayName = cur.getString(displayNameColumn); // 查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cur .getInt(cur .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); Log.i("username", disPlayName); if (phoneCount > 0) { // 获得联系人的电话号码 Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phones.moveToFirst()) { do { // 遍历所有的电话号码 String phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String phoneType = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); Log.i("phoneNumber", phoneNumber); Log.i("phoneType", phoneType); } while (phones.moveToNext()); } } // 获取该联系人邮箱 Cursor emails = getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (emails.moveToFirst()) { do { // 遍历所有的电话号码 String emailType = emails .getString(emails .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); String emailValue = emails .getString(emails .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); Log.i("emailType", emailType); Log.i("emailValue", emailValue); } while (emails.moveToNext()); } // 获取该联系人IM Cursor IMs = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Im.PROTOCOL, Im.DATA }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Im.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (IMs.moveToFirst()) { do { String protocol = IMs.getString(IMs .getColumnIndex(Im.PROTOCOL)); String date = IMs .getString(IMs.getColumnIndex(Im.DATA)); Log.i("protocol", protocol); Log.i("date", date); } while (IMs.moveToNext()); } // 获取该联系人地址 Cursor address = getContentResolver() .query( ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (address.moveToFirst()) { do { // 遍历所有的地址 String street = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); String city = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); String region = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); String postCode = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); String formatAddress = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS)); Log.i("street", street); Log.i("city", city); Log.i("region", region); Log.i("postCode", postCode); Log.i("formatAddress", formatAddress); } while (address.moveToNext()); } // 获取该联系人组织 Cursor organizations = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Organization.COMPANY, Organization.TITLE }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Organization.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (organizations.moveToFirst()) { do { String company = organizations.getString(organizations .getColumnIndex(Organization.COMPANY)); String title = organizations.getString(organizations .getColumnIndex(Organization.TITLE)); Log.i("company", company); Log.i("title", title); } while (organizations.moveToNext()); } // 获取备注信息 Cursor notes = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Note.NOTE }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Note.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (notes.moveToFirst()) { do { String noteinfo = notes.getString(notes .getColumnIndex(Note.NOTE)); Log.i("noteinfo", noteinfo); } while (notes.moveToNext()); } // 获取nickname信息 Cursor nicknames = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Nickname.NAME }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Nickname.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (nicknames.moveToFirst()) { do { String nickname_ = nicknames.getString(nicknames .getColumnIndex(Nickname.NAME)); Log.i("nickname_", nickname_); } while (nicknames.moveToNext()); } } while (cur.moveToNext()); } } }
权限
[java]
view plaincopyprint?
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
以上的是获取所有的联系人,在获取的时候会获取 sim卡 和手机本地中的所有的信息,如果在实际操作中要区分出是要求 sim卡中号码 还是 手机本地中的号码 则可以用下面的方法
[java]
view plaincopyprint?
首先是手机本地:Cursor cursor = getContentResolver().query(People.CONTENT_URI, null,
null, null, null);
while (cursor.moveToNext()) {
ContactInfo cci = new ContactInfo();
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME);
cci.contactName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER);
cci.userNumber = cursor.getString(numberFieldColumnIndex);
cci.userNumber = GetNumber(cci.userNumber);
cci.isChecked = false;
if (IsUserNumber(cci.userNumber)) {
if (!IsContain(contactList, cci.userNumber)) {
if(IsAlreadyCheck(wNumStr, cci.userNumber)){
cci.isChecked = true;
numberStr += "," + cci.userNumber;
}
contactList.add(cci);
//Log.i("eoe", "*********"+cci.userNumber);
}
}
}
cursor.close();
}
首先是手机本地:Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { ContactInfo cci = new ContactInfo(); //取得联系人名字 int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME); cci.contactName = cursor.getString(nameFieldColumnIndex); //取得电话号码 int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER); cci.userNumber = cursor.getString(numberFieldColumnIndex); cci.userNumber = GetNumber(cci.userNumber); cci.isChecked = false; if (IsUserNumber(cci.userNumber)) { if (!IsContain(contactList, cci.userNumber)) { if(IsAlreadyCheck(wNumStr, cci.userNumber)){ cci.isChecked = true; numberStr += "," + cci.userNumber; } contactList.add(cci); //Log.i("eoe", "*********"+cci.userNumber); } } } cursor.close(); }
[java]
view plaincopyprint?
下面是获取SIM卡:
//从SIM卡中取号
private void GetSimContact(String add){
//读取SIM卡手机号,有两种可能:content://icc/adn与content://sim/adn
try {
Intent intent = new Intent();
intent.setData(Uri.parse(add));
Uri uri = intent.getData();
mCursor = getContentResolver().query(uri, null, null, null, null);
if (mCursor != null) {
while (mCursor.moveToNext()) {
ContactInfo sci = new ContactInfo();
// 取得联系人名字
int nameFieldColumnIndex = mCursor.getColumnIndex("name");
sci.contactName = mCursor.getString(nameFieldColumnIndex);
// 取得电话号码
int numberFieldColumnIndex = mCursor
.getColumnIndex("number");
sci.userNumber = mCursor.getString(numberFieldColumnIndex);
sci.userNumber = GetNumber(sci.userNumber);
sci.isChecked = false;
if (IsUserNumber(sci.userNumber)) {
if (!IsContain(contactList, sci.userNumber)) {
if(IsAlreadyCheck(wNumStr, sci.userNumber)){
sci.isChecked = true;
numberStr += "," + sci.userNumber;
}
contactList.add(sci);
//Log.i("eoe", "*********"+sci.userNumber);
}
}
}
mCursor.close();
}
} catch (Exception e) {
Log.i("eoe", e.toString());
}
}
相关文章推荐
- 获取android所有联系人信息
- 获取android所有联系人信息
- android如何获取联系人所有信息
- 获取android所有联系人信息
- Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》
- Android 获取手机联系人信息
- Android逆向之旅---获取加固后应用App的所有方法信息
- Android逆向之旅---获取加固后应用App的所有方法信息
- android 从SIM卡获取联系人信息
- Android中获取手机联系人的基本信息的实现
- android分页查询获取系统联系人信息
- Android 获取通讯录所有的联系人的方法 json打印的就是这些数据
- 获取android联系人信息
- Android学习--隐式Intent获取联系人信息或电话
- android ContentResolver的使用(获取和修改联系人信息demo)
- android获取联系人信息,插入联系人
- Android中 获取系统联系人信息
- android studio for android learning (十二) 查看并获取联系人信息
- Android开发之获取所有软件信息
- Android 获取手机联系人信息