編輯:關於Android編程
對於手機來說,聯系人分兩類:sim卡聯系人和手機內置聯系人。一般來說,sim卡聯系人不帶有更多信息(如通訊地址、頭像等),但是手機內置聯系人可以獲取更多信息。這些信息基本上都會綁定手機賬戶,方便手機用戶找回丟失的數據。下面是獲取聯系人信息的辦法:
java文件代碼(部分):
/** 獲取庫Phon表字段 **/
private static final String[] PHONES_PROJECTION = new String[] {
Phone.DISPLAY_NAME, Phone.NUMBER, Photo.PHOTO_ID, Phone.CONTACT_ID };
/** 聯系人顯示名稱 **/
private static final int PHONES_DISPLAY_NAME_INDEX = 0;
/** 電話號碼 **/
private static final int PHONES_NUMBER_INDEX = 1;
/** 頭像ID **/
private static final int PHONES_PHOTO_ID_INDEX = 2;
/** 聯系人的ID **/
private static final int PHONES_CONTACT_ID_INDEX = 3;
/** 聯系人名稱 **/
private ArrayList
public ArrayList
return mContactsName;
}
public void setmContactsName(ArrayList
this.mContactsName = mContactsName;
}
public ArrayList
return mContactsNumber;
}
public void setmContactsNumber(ArrayList
this.mContactsNumber = mContactsNumber;
}
/** 聯系人頭像 **/
private ArrayList
/** 聯系人頭像 **/
private ArrayList
/** 得到手機通訊錄聯系人信息 **/
public void getPhoneContacts() {
ContentResolver resolver = context.getContentResolver();
// 獲取手機聯系人
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,
PHONES_PROJECTION, null, null, null);
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) {
// 得到手機號碼
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
// 當手機號碼為空的或者為空字段 跳過當前循環
if (TextUtils.isEmpty(phoneNumber))
continue;
// 得到聯系人名稱
String contactName = phoneCursor
.getString(PHONES_DISPLAY_NAME_INDEX);
// // 得到聯系人ID
// Long contactid =
// phoneCursor.getLong(PHONES_CONTACT_ID_INDEX);
//
// // 得到聯系人頭像ID
// Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX);
//
// // 得到聯系人頭像Bitamp
// Bitmap contactPhoto = null;
// photoid 大於0 表示聯系人有頭像 如果沒有給此人設置頭像則給他一個默認的
// if (photoid > 0) {
// Uri uri = ContentUris.withAppendedId(
// ContactsContract.Contacts.CONTENT_URI, contactid);
// InputStream input = ContactsContract.Contacts
// .openContactPhotoInputStream(resolver, uri);
// contactPhoto = BitmapFactory.decodeStream(input);
// } else {
// contactPhoto = BitmapFactory.decodeResource(
// m.getResources(), R.drawable.contact_photo);
// }
mContactsName.add(contactName);
mContactsNumber.add(phoneNumber);
}
phoneCursor.close();
}
}
/** 得到手機SIM卡聯系人人信息 **/
public void getSIMContacts() {
ContentResolver resolver = context.getContentResolver();
// 獲取Sims卡聯系人
Uri uri = Uri.parse("content://icc/adn");
Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null,
null);
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) {
// 得到手機號碼
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
// 當手機號碼為空的或者為空字段 跳過當前循環
if (TextUtils.isEmpty(phoneNumber))
continue;
// 得到聯系人名稱
String contactName = phoneCursor
.getString(PHONES_DISPLAY_NAME_INDEX);
// Sim卡中沒有聯系人頭像
mContactsName.add(contactName);
mContactsNumber.add(phoneNumber);
}
phoneCursor.close();
}
}
需要在MainFest.xml文件中申請的權限:個人辛勤勞動成果,如有轉載,請注明出處,謝謝!
TabActivity 首先Android裡面有個名為TabActivity來給我們方便使用。其中有以下可以關注的函數: public TabHost getT
第一次做這樣的設備,原來如此簡單,記錄一下。 用公告程序替代launcher 其實小米盒子,樂視盒子等類似設備都是這樣做的。 一:顯示器嵌入系統。 買一個主
MainActivity.java 0) { startThreads(threads, iterations); } } }); }
前言羅升陽的《Android系統源代碼情景分析》一書,有關log是如何顯示,那麼真的在代碼中是如何實現的呢?就該問題我想需要細細分析bootloader層的log在fir