У меня есть следующие разрешения в моем приложении для устройств Andorid M. Я тестировал это на 6.0.0 и 6.0.1, и получаю те же результаты как на Nexus 5X, так и на Nexus 6P. В основном каждое разрешение возвращает неверные результаты, и когда я включаю/выключаю их, результат не изменяется.Разрешения Android M, возвращать неверный результат
Я вставлю несколько примеров тестового кода ниже, чтобы показать, как я тестирую это.
Manifest Права доступа:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BIND_NFC_SERVICE" />
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<uses-permission android:name="android.permission.RECEIVE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.simplytapp.virtualcard.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
MainActivity:
private static final String[] CHECK_PERMISSIONS = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CALL_PHONE,
Manifest.permission.READ_CALL_LOG,
Manifest.permission.WRITE_CALL_LOG,
Manifest.permission.USE_SIP,
Manifest.permission.PROCESS_OUTGOING_CALLS,
Manifest.permission.CALL_PRIVILEGED,
Manifest.permission.MODIFY_PHONE_STATE,
Manifest.permission.VIBRATE,
Manifest.permission.INTERNET,
Manifest.permission.NFC,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.BIND_NFC_SERVICE,
Manifest.permission.WAKE_LOCK,
Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION
};
for (int i = 0; i < CHECK_PERMISSIONS.length; i++) {
permissionsController.checkAccessPermissions(0, CHECK_PERMISSIONS[i]);
}
public boolean checkAccessPermissions(int statusCode, String permission) {
boolean granted = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(mContext, permission) != PackageManager.PERMISSION_GRANTED) {
granted = false;
}
}
Log.i("Permissions Check", "Permission: " + permission + " - has status: " + granted);
return granted;
}
Это всегда будет возвращать те же результат погодные разрешения предоставляются или нет.
Permissions Check: Permission: android.permission.READ_PHONE_STATE - has status: true
Permissions Check: Permission: android.permission.CALL_PHONE - has status: true
Permissions Check: Permission: android.permission.READ_CALL_LOG - has status: false
Permissions Check: Permission: android.permission.WRITE_CALL_LOG - has status: false
Permissions Check: Permission: android.permission.USE_SIP - has status: false
Permissions Check: Permission: android.permission.PROCESS_OUTGOING_CALLS - has status: false
Permissions Check: Permission: android.permission.CALL_PRIVILEGED - has status: false
Permissions Check: Permission: android.permission.MODIFY_PHONE_STATE - has status: false
Permissions Check: Permission: android.permission.VIBRATE - has status: true
Permissions Check: Permission: android.permission.INTERNET - has status: true
Permissions Check: Permission: android.permission.NFC - has status: true
Permissions Check: Permission: android.permission.ACCESS_NETWORK_STATE - has status: true
Permissions Check: Permission: android.permission.WRITE_EXTERNAL_STORAGE - has status: true
Permissions Check: Permission: android.permission.BIND_NFC_SERVICE - has status: false
Permissions Check: Permission: android.permission.WAKE_LOCK - has status: true
Permissions Check: Permission: android.permission.READ_CONTACTS - has status: true
Permissions Check: Permission: android.permission.READ_EXTERNAL_STORAGE - has status: true
Permissions Check: Permission: android.permission.ACCESS_FINE_LOCATION - has status: true
Что вы 'targetSdkVersion'? – CommonsWare