Android系統常用URI
android系統常用URI
android系統管理聯系人的URI如下:
ContactsContract.Contacts.CONTENT_URI 管理聯系人的Uri
ContactsContract.CommonDataKinds.Phone.CONTENT_URI 管理聯系人的電話的Uri
ContactsContract.CommonDataKinds.Email.CONTENT_URI 管理聯系人的Email的Uri
(註:Contacts有兩個表,分別是rawContact和Data,rawContact記錄了用戶的id和name,
其中id欄名稱為:ContactsContract.Contacts._ID, name名稱欄為ContactContract.Contracts.DISPLAY_NAME,電話信息表的外鍵id為ContactsContract.CommonDataKinds.Phone.CONTACT_ID,電話號碼欄名稱為:ContactsContract.CommonDataKinds.Phone.NUMBER.
參考:http://blog.sina.com.cn/s/blog_90cdca4c01010zm4.html
data表中Email地址欄名稱為:
ContactsContract.CommonDataKinds.Email.DATA
其外鍵欄為:ContactsContract.CommonDataKinds.Email.CONTACT_ID)
android為多媒體提供的ContentProvider的Uri如下:
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 存儲在sd卡上的音頻文件
MediaStore.Audio.Media.INTERNAL_CONTENT_URI 存儲在手機內部存儲器上的音頻文件
MediaStore.Audio.Video.INTERNAL_CONTENT_URI 手機內部存儲器上的視頻
SD卡上的圖片文件內容
MediaStore.Images.Media.INTERNAL_CONTENT_URI手機內部存儲器上的圖片
MediaStore.Images.Media.EXTERNAL_CONTENT_URI SD卡上的視頻
(註:圖片的顯示名欄:Media.DISPLAY_NAME,圖片的詳細描述欄為:Media.DESCRIPTION
圖片的保存位置:Media.DATA
短信URI: Content://sms
發送箱中的短信URI:
Content://sms/outbox
(相應欄名稱address, subject(標題), time)
// 查詢通訊錄中聯系人?
Cursor cr =
getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null,
null, null);
如果我們只想獲取手機號如何操作呢?
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+
ContactId, null, null);
把以上語句改為:
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+
ContactId +" AND "+ ContactsContract.CommonDataKinds.Phone.TYPE
+"="+ ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, null,
null);
ContactsContract.CommonDataKinds.Phone.TYPE 表示聯系人電話的類型,主要對應如下:
TYPE_MOBILE : 手機號碼
TYPE_HOME : 住宅電話
TYPE_WORK : 公司電話
最後記得在AndroidManifest.xml聲明讀取聯系人的API:
<uses-permission
android:name="android.permission.READ_CONTACTS"/>
Android系統常用URI