繁体   English   中英

Android 权限拒绝:forceStopPackage()

[英]Android Permission Denial: 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);

如何解决问题。

我知道这是一个旧线程,但我想确保访问此线程的工程师具有最新信息。

android.permission.FORCE_STOP_PACKAGES 是签名| priviliged 权限因此它需要进入 priv-app 下的系统分区。 因此,任何想要在他们的应用程序中获得此权限的人都必须与各自的 OEM 合作,将它们预加载到 priv-app 上。

从 Android O 开始:此权限以及应用名称需要在权限 xml 之一中声明

privapp-permissions-platform.xml – AOSP 应用程序 privapp-permissions-google.xml – Google Apps privapp-permissions-.xml – OEM/ODM、OEM Associated 和其他

<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>

确保仅当您的应用程序使用系统密钥 os 进行签名时才允许停止其他应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM