Androidで通話履歴全体をどのようにクリアできますか? 現在、特定の通話ログのみをクリアできるこのコードがあります
public void DeleteCallLogByNumber(String number) {
String queryString="NUMBER="+number;
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
}
}
Androidで通話履歴全体をどのようにクリアできますか? 現在、特定の通話ログのみをクリアできるこのコードがあります
public void DeleteCallLogByNumber(String number) {
String queryString="NUMBER="+number;
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
}
}
これで出来ました、 お久しぶりですけど。これがまだ機能するかどうかはわかりません。
getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, null, null) ;
編集: プラットフォームの設計者が、アプリがコール ログを削除できるようにすることを意図しているかどうかは定かではありません。この開発者ブログの投稿を参照してください。したがって、これは技術的には機能しますが、ビルドしようとしているものがいつでも変更されて壊れる可能性があるという公正な警告としてこれを受け取ってください。
1 回の API 呼び出しですべてを削除することはできません。
ただし、それらすべてをループすることで、(コメントに記載されているように) 1 つずつ削除できます。これを行うには、を使用するCursor
必要があります。注意: このリンクは 60 秒未満の通話のみを消去するため、Cursor
代わりに作成を変更してすべての通話を削除する必要があります。
また、注: API 11 以降では、CursorLoader
代わりにを使用する必要がありmanagedQuery(...)
ます。
これを試して:
String queryString="DURATION >= 0";
this.getContentResolver().delete(android.provider.CallLog.Calls.CONTENT_URI, queryString, null);