国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程操作手機通訊錄的方法示例

2019-12-12 02:24:01
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程操作手機通訊錄的方法。分享給大家供大家參考,具體如下:

手機通訊錄的操作是經常被用到的,例如添加聯系人,刪除聯系人或者取得聯系人信息。類似的操作還有收藏夾的操作,下面就針對通訊錄的操作來做個小例子。同樣的這次也會使用到內容提供者的知識。

1. 要操作通信錄就要得到授權,也就是讀或者寫通訊錄的權力。這里也需要使用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. 開始取得通訊錄里的內容,主要就是名稱,號碼,郵箱

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);   //取得通訊錄里的內容   while(cursor.moveToNext()){     StringBuffer buf=new StringBuffer(); //實例化一個可變字符串StringBuffer     //取得聯系人id,每個條目都有一個唯一的id(主鍵)     String contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));     //取得聯系人的顯示名稱     String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));     buf.append("id:"+contactId).append(",name:"+name);     //取得聯系人的號碼     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();     //取得聯系人的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相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android布局layout技巧總結》、《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android資源操作技巧匯總》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巫溪县| 沅江市| 古蔺县| 洛隆县| 台前县| 环江| 建阳市| 平顶山市| 宣汉县| 营山县| 长海县| 翁源县| 江门市| 景德镇市| 介休市| 花莲县| 镇坪县| 麟游县| 丰都县| 灵石县| 利川市| 南通市| 格尔木市| 犍为县| 岳西县| 临武县| 赤水市| 尼勒克县| 新余市| 射洪县| 乐平市| 蓬莱市| 吴江市| 达日县| 若尔盖县| 武胜县| 岗巴县| 常州市| 始兴县| 黄龙县| 双柏县|