Журнал звонков на galaxy
Как можно вытащить список звонков из журнала звонков на устройствах самсунг, потому как андроид хранит только 500 звонков, а устройства самсунг хранят еще где-то эти звонки. Можно ли их как-то вытащить?
Как можно вытащить список звонков из журнала звонков на устройствах самсунг, потому как андроид хранит только 500 звонков, а устройства самсунг хранят еще где-то эти звонки. Можно ли их как-то вытащить?
Если внимательно изучить исходники android.provider.CallLog
, то видно, что действительно больше 500 записей в БД не хранится, основой является приватный метод:
private static Uri addEntryAndRemoveExpiredEntries(Context context,
Uri uri, ContentValues values) {
final ContentResolver resolver = context.getContentResolver();
Uri result = resolver.insert(uri, values);
resolver.delete(uri, "_id IN " + "(SELECT _id FROM calls ORDER BY " + DEFAULT_SORT_ORDER + " LIMIT -1 OFFSET 500)", null);
return result;
}
То есть после вставки удаляется старая запись, если количество записей более 500.
Вижу такие варианты, как победить проблему:
PhoneStateListener
, который после звонка будет сохранять историю звонка в свою/вашу БД (по сути, так и работают аппы, сохраняющие историю звонков). Это точно, что 500, Вы считали? И как определено, что хранится где-то ещё?
Вообще, если я правильно понимаю идеологию, то инфа о звонках хранится в журнале вызовов. Доступ к нему через
getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,...
Возвращает Cursor.
Хотя, может быть, мои сведения устарели... Буду сам рад узнать про другие места хранения!