Как удалить/удалить журнал вызовов из приложения. Я делаю вот такКак удалить журналы вызовов из android программно?
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,null,null);
не работает.
Как удалить/удалить журнал вызовов из приложения. Я делаю вот такКак удалить журналы вызовов из android программно?
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,null,null);
не работает.
убедитесь, что у имеют следующие разрешения в manifast.xml:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
для удаления Calllogs для конкретного номера попробовать этот способ:
public void DeleteCallLogByNumber(String number) {
String queryString = "NUMBER=" + number;
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI, queryString, null);
}
Разве вы не имеете в виду '
Это не работает для меня. –
Существующее решение не будет удалять номера с 0 или + префикс. Для этого для всех телефонных номеров нужно поместить число в одинарные кавычки, например: Строка queryString = "NUMBER = '" + deleteNumber + "'"; Надеюсь, это поможет.
Если у вас есть вопрос, задайте новый вопрос. –
Это решение работает как магия :) –
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
You need to give only this permission to work along with this method
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI, null, null);
Its working perfectly for me. I've tested it on my Moto-G running
Kitkat 4.4.2 and Samsung Note with Jelly Bean 4.1.
Это работает и над Зефиром. Я просто добавил этот комментарий, если кто-то наткнулся на этот ответ. –
Принятый ответ удалит все вызовы из журнала вызовов для определенного номера. Если вы хотите удалить только один вызов, вы можете сделать это, передав CallLogId этой функции и запустив этот запрос.
public void DeleteCallById(String idd) {
this.getContentResolver().delete(CallLog.Calls.CONTENT_URI,CallLog.Calls._ID + " = ? ",
new String[] { String.valueOf(idd) });
}
Да, это хорошее решение – Achin
Спасибо. Ваш ответ был очень полезным, простым и обеспечивающим понимание темы. – JamisonMan111
Вот усовершенствованный способ, например, если сохраненный номер в базе данных, как: "914111222" этот метод может иметь дело с числами, как: "+ 98 914 111 2222":
public void removeContactsLogFromPhoneLogs(String numberTag){
char[] number=numberTag.toCharArray();
String n="%";
for(int i=0;i<number.length;i++)
{
n=n+(number[i]+"%");
}
String queryString=CallLog.Calls.NUMBER+" LIKE '"+n+"'";
mContext.getContentResolver().delete(CallLog.Calls.CONTENT_URI,queryString,null);
}
она требует разрешений, как:
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
Супер полезное спасибо – JamisonMan111
убедитесь, что у вас '<использует-разрешение андроид: имя = "android.permission.READ_CONTACTS"/> <использует-разрешение андроид: Name = "android.permission.WRITE_CONTACTS"/ > 'разрешение в человеке ifest –
какая ошибка у вас? отправьте свой логарифм. –
@imrankhan это работает, но я хочу удалить определенное число из журналов вызовов. – sai