Разрешение 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>,

Во-вторых, ваше приложение не может иметь такое разрешение, если оно не установлено в системном разделе (например, пользователем корневого устройства) или не подписано тем же ключом подписи, который подписал системную прошивку.

Другие вопросы по тегам