Отказ в разрешении Android: forceStopPackage()

Я пытаюсь убить другое приложение, используя forceStopPackage (). Но мое приложение показывает ошибку во время выполнения.

Ошибка:

java.lang.SecurityException: Permission Denial: forceStopPackage() from pid=10377, uid=10200 requires android.permission.FORCE_STOP_PACKAGES

В моем файле манифеста я добавил следующие разрешения.

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

    <permission
        android:name="android.permission.FORCE_STOP_PACKAGES"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="signature"
        android:sharedUserId="android.uid.system" />

Код:

ActivityManager am = (ActivityManager) 
         context.getSystemService(Context.ACTIVITY_SERVICE);
Method forceStopPackage = am.getClass().
          getDeclaredMethod("forceStopPackage", String.class);  
    forceStopPackage.setAccessible(true);  
    forceStopPackage.invoke(am, packageName);

Как решить проблему.

2 ответа

Я знаю, что это старая ветка, но я хотел убедиться, что инженеры, посещающие эту ветку, имеют самую свежую информацию.

android.permission.FORCE_STOP_PACKAGES является подписью | Привилегированное разрешение, следовательно, оно должно войти в системный раздел в priv-app. Поэтому любой, кто хочет получить это разрешение в своем приложении, должен работать с соответствующим OEM-производителем, чтобы предварительно загрузить их в priv-app.

Начиная с Android O: Это разрешение вместе с именем приложения должно быть объявлено в одном из разрешений xml

privapp-permissions-platform.xml - AOSP Apps privapp-permissions-google.xml - Google Apps privapp-permissions-.xml - OEM/ODM, связанные с OEM и другие

<privapp-permissions package="com.abc.android.xyz">
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
</privapp-permissions> 

Вы должны добавить разрешение в AndroidManifest.xml, как показано ниже.

<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>

Убедитесь, что только если ваше приложение подписано системным ключом, ОС позволит остановить другие приложения.

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