4

プロジェクトの別のapkのコンポーネントを更新する必要があるため、コードでandroid.permission.CHANGE_COMPONENT_ENABLED_STATEパーミッションを使用する必要がありますが、実際にはうまくいかないようです

ここに私のコードがあります:

<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) {}

allowedByPermission は常に false をログに記録します。

4

1 に答える 1

4

まず、アプリには<uses-permission>ではなくが必要<permission>です。

第 2 に、アプリがシステム パーティションにインストールされている (たとえば、root 化されたデバイス ユーザーによって) か、システム ファームウェアに署名したのと同じ署名キーによって署名されていない限り、アプリはそのアクセス許可を保持できません。

于 2013-10-10T18:41:13.547 に答える