日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android使用READ_CONTACTS读取手机联系人

發布時間:2024/1/17 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android使用READ_CONTACTS读取手机联系人 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實例代碼: package com.example.readcontacts;import java.io.InputStream; import java.util.ArrayList;import android.app.ListActivity; import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.Photo; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends ListActivity {Context mContext = null;/** 獲取庫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<String> mContactsName = new ArrayList<String>();/** 聯系人頭像 **/ private ArrayList<String> mContactsNumber = new ArrayList<String>();/** 聯系人頭像 **/ private ArrayList<Bitmap> mContactsPhonto = new ArrayList<Bitmap>();ListView mListView = null; MyListAdapter myAdapter = null;@Override public void onCreate(Bundle savedInstanceState) { mContext = this; mListView = this.getListView(); /** 得到手機通訊錄聯系人信息 **/ getPhoneContacts();myAdapter = new MyListAdapter(this); setListAdapter(myAdapter);mListView.setOnItemClickListener(new OnItemClickListener() {@Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { // 調用系統方法撥打電話 Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri .parse("tel:" + mContactsNumber.get(position))); startActivity(dialIntent); } });super.onCreate(savedInstanceState); }/** 得到手機通訊錄聯系人信息 **/ private void getPhoneContacts() { ContentResolver resolver = mContext.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(getResources(), R.drawable.contact_photo); }mContactsName.add(contactName); mContactsNumber.add(phoneNumber); mContactsPhonto.add(contactPhoto); }phoneCursor.close(); } }/** 得到手機SIM卡聯系人人信息 **/ private void getSIMContacts() { ContentResolver resolver = mContext.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(); } }class MyListAdapter extends BaseAdapter { public MyListAdapter(Context context) { mContext = context; }public int getCount() { // 設置繪制數量 return mContactsName.size(); }@Override public boolean areAllItemsEnabled() { return false; }public Object getItem(int position) { return position; }public long getItemId(int position) { return position; }public View getView(int position, View convertView, ViewGroup parent) { ImageView image = null; TextView title = null; TextView text = null; if (convertView == null || position < mContactsNumber.size()) { convertView = LayoutInflater.from(mContext).inflate( R.layout.colorlist, null); image = (ImageView) convertView.findViewById(R.id.color_image); title = (TextView) convertView.findViewById(R.id.color_title); text = (TextView) convertView.findViewById(R.id.color_text); } // 繪制聯系人名稱 title.setText(mContactsName.get(position)); // 繪制聯系人號碼 text.setText(mContactsNumber.get(position)); // 繪制聯系人頭像 image.setImageBitmap(mContactsPhonto.get(position)); return convertView; }} } 注意:用戶權限 <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="ndroid.permission.CALL_PHONE" />

總結

以上是生活随笔為你收集整理的Android使用READ_CONTACTS读取手机联系人的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。