編輯:關於Android編程
本文實例講述了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程序設計有所幫助。
加速篇GRADLE的構建過程通常會比較漫長,一個中等項目,10M左右大小的app,一次完整構建大概在5分鐘左右,是不是很嚇人,當然,如果是在調試階段,采用Android
預備知識 android手機的內部存儲設備分RAM和ROM,RAM是運行內存,掉電就會失去所有內容;ROM中的內容掉電後也不會丟失。 比如一台手機的規格
應用程序中可以查看應用程序的相關信息,其中有一個功能是清除緩存。如圖: 怎麼實現這些功能呢,從Android的setting源碼中可以得到相關信息。 實現如下:
最常用快捷鍵 快捷鍵 用途描述 ctrl+k commit到版本控制軟件 ctrl+shift+K push到遠程倉庫 ctrl+T 拉取版本到本地