5

Androidで通話履歴全体をどのようにクリアできますか? 現在、特定の通話ログのみをクリアできるこのコードがあります

public void DeleteCallLogByNumber(String number) {   
    String queryString="NUMBER="+number; 
    this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
    }  
}
4

3 に答える 3

7

これで出来ました、 お久しぶりですけど。これがまだ機能するかどうかはわかりません。

getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, null, null) ;

編集: プラットフォームの設計者が、アプリがコール ログを削除できるようにすることを意図しているかどうかは定かではありません。この開発者ブログの投稿を参照してください。したがって、これは技術的には機能しますが、ビルドしようとしているものがいつでも変更されて壊れる可能性があるという公正な警告としてこれを受け取ってください。

于 2012-08-02T23:06:57.650 に答える
2

1 回の API 呼び出しですべてを削除することはできません。

ただし、それらすべてをループすることで、(コメントに記載されているように) 1 つずつ削除できます。これを行うには、を使用するCursor必要があります。注意: このリンクは 60 秒未満の通話のみを消去するため、Cursor代わりに作成を変更してすべての通話を削除する必要があります。

また、注: API 11 以降では、CursorLoader代わりにを使用する必要がありmanagedQuery(...)ます。

于 2012-08-02T22:52:05.770 に答える
1

これを試して:

String queryString="DURATION >= 0"; 
this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null);
于 2012-08-02T23:11:34.703 に答える