Android編程操作手機通訊錄的方法示例
本文實例講述了Android編程操作手機通訊錄的方法。分享給大家供大家參考,具體如下:
手機通訊錄的操作是經(jīng)常被用到的,例如添加聯(lián)系人,刪除聯(lián)系人或者取得聯(lián)系人信息。類似的操作還有收藏夾的操作,下面就針對通訊錄的操作來做個小例子。同樣的這次也會使用到內(nèi)容提供者的知識。
1. 要操作通信錄就要得到授權(quán),也就是讀或者寫通訊錄的權(quán)力。這里也需要使用Junit
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.lxh.contact" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="android.test.runner" /> </application> <uses-sdk android:minSdkVersion="8" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="org.lxh.contact" android:label="TestforMyApp" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> </manifest>
2. 開始取得通訊錄里的內(nèi)容,主要就是名稱,號碼,郵箱
package org.lxh.contact; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.provider.ContactsContract; import android.test.AndroidTestCase; import android.util.Log; public class TestContact extends AndroidTestCase{ //junit測試類 public void testFind() throws Throwable{ Uri uri=ContactsContract.Contacts.CONTENT_URI; //通訊錄的uri,這是推薦的常量 ContentResolver resol=this.getContext().getContentResolver(); Cursor cursor=resol.query(uri, null, null, null, null); //取得通訊錄里的內(nèi)容 while(cursor.moveToNext()){ StringBuffer buf=new StringBuffer(); //實例化一個可變字符串StringBuffer //取得聯(lián)系人id,每個條目都有一個唯一的id(主鍵) String contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); //取得聯(lián)系人的顯示名稱 String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME)); buf.append("id:"+contactId).append(",name:"+name); //取得聯(lián)系人的號碼 Cursor phone=resol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+" = "+contactId,null,null); while(phone.moveToNext()){ String phonum=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); buf.append(phonum); } phone.close(); //取得聯(lián)系人的email Cursor email=resol.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID+" = "+contactId,null,null); while(email.moveToNext()){ String mail=email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); buf.append(",mail:"+mail); } email.close(); Log.i("TestContact",buf.toString()); } cursor.close(); } }
看這個查詢過程可以知道,其實這里有2張表,一張存著id和name,一張存著號碼,郵箱之類的信息。id為主鍵,后面的表用它作為外鍵。至于刪除和其他操作你們可以自己看文檔。我這里就不說了。
更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android布局layout技巧總結(jié)》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設計有所幫助。
相關文章
Android 消息機制以及handler的內(nèi)存泄露
這篇文章主要介紹了Android 消息機制以及handler的內(nèi)存泄露的相關資料,需要的朋友可以參考下2016-09-09Android入門之系統(tǒng)設置Configuration類的使用教程
這篇文章主要給大家介紹一下Configuration類的使用,Configuration類是用來描述手機設備的配置信息的,比如屏幕方向,?觸摸屏的觸摸方式等,感興趣的可以了解一下2022-12-12Android獲取手機屏幕寬高、狀態(tài)欄高度以及字符串寬高信息的方法
這篇文章主要介紹了Android獲取手機屏幕寬高、狀態(tài)欄高度以及字符串寬高信息的方法,涉及Android獲取文字寬高、狀態(tài)欄高度、textView寬度及屏幕尺寸的相關技巧,需要的朋友可以參考下2015-04-04Android自定義view實現(xiàn)太極效果實例代碼
這篇文章主要介紹了Android自定義view實現(xiàn)太極效果實例代碼的相關資料,需要的朋友可以參考下2017-05-05Android實現(xiàn)viewpager實現(xiàn)循環(huán)輪播效果
這篇文章主要為大家詳細介紹了Android實現(xiàn)viewpager實現(xiàn)循環(huán)輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Android jni調(diào)試打印char陣列的實例詳解
這篇文章主要介紹了Android jni調(diào)試打印char陣列的實例詳解的相關資料,通過此文希望能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08