Разрешение Android - CHANGE_COMPONENT_ENABLED_STATE
Мне нужно использовать разрешение android.permission.CHANGE_COMPONENT_ENABLED_STATE в моем коде, потому что мне нужно обновить компонент другого apk моего проекта, но, похоже, он мне не подходит
вот мой код:
<permission
android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"
android:protectionLevel="signatureOrSystem"/>
final int permission = ctx.checkCallingPermission(android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE);
final boolean allowedByPermission = (permission == PackageManager.PERMISSION_GRANTED);
L.d(TAG, "allowedByPermission :" + allowedByPermission + " permission:" + permission);
if(allowedByPermission) {}
allowByPermission всегда регистрирует ложное. Не уверен, что могу что-то пропустить?
1 ответ
Решение
Во-первых, вашему приложению потребуется <uses-permission>
не <permission>
,
Во-вторых, ваше приложение не может иметь такое разрешение, если оно не установлено в системном разделе (например, пользователем корневого устройства) или не подписано тем же ключом подписи, который подписал системную прошивку.