亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-05 04:44:42 來源:腳本之家 閱讀:131 作者:青蛙小王子 欄目:移動開發

本文實例講述了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程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 桐城市| 青神县| 荆门市| 平乡县| 锡林浩特市| 阿图什市| 汾阳市| 固始县| 昂仁县| 广灵县| 栾城县| 达尔| 曲松县| 遂昌县| 咸阳市| 封丘县| 潼关县| 陵川县| 会同县| 柞水县| 视频| 连江县| 泸定县| 德钦县| 外汇| 塔城市| 乐山市| 青神县| 义马市| 宣威市| 固原市| 遵义县| 芦溪县| 三明市| 怀柔区| 永州市| 都安| 改则县| 崇仁县| 贺兰县|