Я дал READ_SMS
, а также READ_CALL_LOG
разрешение в файле манифеста, но все же я получаю SecurityException
в моих BroadcastReceiver
.Ошибка разрешения в BroadcastReceiver
Код:
@Override
public void onReceive(Context context, Intent intent) {
getMissedCallCount(context);
getUnreadSMSCount(context);
}
private void getMissedCallCount(Context context) {
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
Log.d("Call Logs permission", "Not provided...");
return;
}
String[] projection = {CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE};
String where = CallLog.Calls.TYPE + "=" + CallLog.Calls.MISSED_TYPE;
Cursor c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, where, null, null);
c.moveToFirst();
Log.d("CALL COUNT: ", ""+c.getCount());
c.close();
}
Log:
Call Logs permission: Not provided...
Любая идея об этой проблеме?
Обеспечить не READ_SMS но разрешение READ_CALL_LOG в разрешении манифеста (вы добавили read_sms в манифесте, но во время выполнения проверки разрешения read_call_log, он получил? Там разрешения имеют разные группы). И если вам нужно разрешение READ_SMS, вы должны запросить его: https://developer.android.com/training/permissions/requesting.html https://developer.android.com/guide/topics/security/permissions.html # normal-dangerous – krossovochkin
Я дал оба разрешения. См. Мой отредактированный вопрос. – Satheshkumar
@Satheshkumar полностью прочитал [это] (https://developer.android.com/guide/topics/security/permissions.html) полностью. – Gattsu