欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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 來對外共享的

4. Uri

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

5. 查詢出所有記錄

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

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

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

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

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

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

/* 本代碼因為在 Activity 中,所以可以直接調(diào)用 getContentResolver()。這個方法實際上是 Context 中定義的。 */
ContentResolver resolver = getContentResolver();
/* 這里涉及到內(nèi)容提供者的知識,其實這里是直接在操作 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ā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android圖形與圖像處理技巧總結(jié)》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

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

相關(guān)文章

最新評論