亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法

 更新時(shí)間:2016年10月21日 09:13:10   作者:iamfafa  
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法,較為詳細(xì)的分析了Android刪除通話記錄的原理、步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法。分享給大家供大家參考,具體如下:

1. 負(fù)責(zé)存放呼叫記錄的內(nèi)容提供者源碼在 ContactsProvider 項(xiàng)目下:
源碼路徑:

com/Android/providers/contacts/CallLogProvider.Java

使用到的數(shù)據(jù)庫在:

/data/data/com.android.providers.contacts/databases/contacts2.db

表名:calls

呼叫記錄有三種類型:

來電:CallLog.Calls.INCOMING_TYPE (常量值:1)

已撥:CallLog.Calls.OUTGOING_TYPE(常量值:2)

未接:CallLog.Calls.MISSED_TYPE(常量值:3)

查看源碼中的聲明:

<provider android:name="CallLogProvider"
  android:authorities="call_log"
  android:syncable="false" android:multiprocess="false"
  android:readPermission="android.permission.READ_CONTACTS"
  android:writePermission="android.permission.WRITE_CONTACTS">
</provider>

2.需要聲明的權(quán)限

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

3. 系統(tǒng)的通話記錄,是通過 ContentProvider 來對(duì)外共享的

4. Uri

CallLog.Calls.CONTENT_URI : 等價(jià)于:Uri.parse("content://call_log/calls");

5. 查詢出所有記錄

ContentResolver resolver = getContentResolver();
resolver.query(CallLog.Calls.CONTENT_URI, null, null, new String[]{"15101689022"}, null);

6. 查詢某一個(gè)聯(lián)系人的所有記錄(按電話號(hào)碼)

復(fù)制代碼 代碼如下:
resolver.query(CallLog.Calls.CONTENT_URI, null, "number=?", new String[]{"15101689022"}, null);

7. 查詢某一個(gè)聯(lián)系人的所有未接電話記錄(按電話號(hào)碼)

復(fù)制代碼 代碼如下:
resolver.query(CallLog.Calls.CONTENT_URI, null, "number=? and type=3", new String[]{"15101689022"}, null);

8. 刪除某聯(lián)系人最近的一次來電

/* 本代碼因?yàn)樵?Activity 中,所以可以直接調(diào)用 getContentResolver()。這個(gè)方法實(shí)際上是 Context 中定義的。 */
ContentResolver resolver = getContentResolver();
/* 這里涉及到內(nèi)容提供者的知識(shí),其實(shí)這里是直接在操作 Android 的數(shù)據(jù)庫,十分痛苦 */
Cursor cursor = resolver.query(CallLog.Calls.CONTENT_URI, new String[]{"_id"}, "number=? and (type=1 or type=3)", new String[]{"15101689022"}, "_id desc limit 1");
if(cursor.moveToFirst()) {
  int id = cursor.getInt(0);
  resolver.delete(CallLog.Calls.CONTENT_URI, "_id=?", new String[] {id + ""});
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android圖形與圖像處理技巧總結(jié)》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論