среда, 9 октября 2013 г.

Телефонные вызовы. Очистка списка истории вызовов

Метод очистки списка истории вызовов
private void deleteNumber(String number) {
  String strUriCalls = "content://call_log/calls";

  Uri UriCalls = Uri.parse(strUriCalls);

  Cursor c = MainActivity.this.getContentResolver().query(UriCalls, null,
    null, null, null);

  if (c.getCount() <= 0) {
   Toast.makeText(getApplicationContext(), "Call log empty",
     Toast.LENGTH_SHORT).show();
  }

  while (c.moveToNext()) {
   String queryString = "NUMBER='" + number + "'";
   Log.v("Timing", queryString);
   int i = MainActivity.this.getContentResolver().delete(UriCalls,
     queryString, null);

   if (i >= 1) {
    Toast.makeText(getApplicationContext(), "Number deleted",
      Toast.LENGTH_SHORT).show();
   } else {
    Toast.makeText(getApplicationContext(),
      "No such number in call logs", Toast.LENGTH_SHORT)
      .show();
   }
  }
 }
еще лучше вызвать удаление звонка после секундной паузы

Runnable mRunnable;
Handler mHandler = new Handler();
mRunnable = new Runnable() {
        @Override
 public void run() {
deleteNumber(number);
        }
};
mHandler.postDelayed(mRunnable, 1000);


ну и конечно же, как выяснилось опытным путем, необходимо добавить пермишены)
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />

Комментариев нет:

Отправить комментарий