Android開發實現刪除聯絡人通話記錄的方法

NO IMAGE

本文例項講述了Android開發實現刪除聯絡人通話記錄的方法。分享給大家供大家參考,具體如下:

1. 負責存放呼叫記錄的內容提供者原始碼在 ContactsProvider 專案下:
原始碼路徑:

com/Android/providers/contacts/CallLogProvider.Java

使用到的資料庫在:

/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.需要宣告的許可權


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

3. 系統的通話記錄,是通過 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. 查詢某一個聯絡人的所有記錄(按電話號碼)
複製程式碼 程式碼如下:resolver.query(CallLog.Calls.CONTENT_URI, null, “number=?”, new String[]{“15101689022”}, null);

7. 查詢某一個聯絡人的所有未接電話記錄(按電話號碼)
複製程式碼 程式碼如下:resolver.query(CallLog.Calls.CONTENT_URI, null, “number=? and type=3”, new String[]{“15101689022”}, null);

8. 刪除某聯絡人最近的一次來電


/* 本程式碼因為在 Activity 中,所以可以直接呼叫 getContentResolver()。這個方法實際上是 Context 中定義的。 */
ContentResolver resolver = getContentResolver();
/* 這裡涉及到內容提供者的知識,其實這裡是直接在操作 Android 的資料庫,十分痛苦 */
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   ""});
}

更多關於Android相關內容感興趣的讀者可檢視本站專題:《Android開發入門與進階教程》、《Android除錯技巧與常見問題解決方法彙總》、《Android圖形與影象處理技巧總結》、《Android多媒體操作技巧彙總(音訊,視訊,錄音等)》、《Android基本元件用法總結》、《Android檢視View技巧總結》、《Android佈局layout技巧總結》及《Android控制元件用法總結

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

您可能感興趣的文章:

Android獲取手機通話記錄的方法Android通話記錄備份實現程式碼Android破解微信獲取聊天記錄和通訊錄資訊(靜態方式)Android通訊錄開發之刪除功能的實現方法Android獲取手機通訊錄、sim卡聯絡人及呼叫撥號介面方法Android實現通訊錄效果——獲取手機號碼和姓名Android實現仿通訊錄側邊欄滑動SiderBar效果程式碼Android手機聯絡人快速索引(手機通訊錄)Android跳轉到通訊錄獲取使用者名稱稱和手機號碼的實現思路Android利用Intent讀取和更新通訊錄Android基於BaseExpandableListAdapter實現的二級列表仿通話記錄功能詳解