繁体   English   中英

Android - 在没有系统权限的情况下杀死另一个应用程序

[英]Android - Kill another app without system permission

我有一个可以启动其他应用程序的应用程序。

这行得通,我可以做到。

现在,我还想杀死由我的应用程序启动的应用程序。

但我找不到这样做的方法(我的应用程序没有系统权限)。

我试图列出所有当前正在运行的进程以获取它们的 PID 并用它杀死,但我只能获取我的应用程序的 PID。

我试图杀死后台进程(我知道应用程序的 package 名称)但它不起作用。

那么,有没有办法在没有系统权限的情况下用我的应用程序杀死其他应用程序?

我认为首先要做到这一点,你应该认真阅读谷歌指南,以确保你必须发布它。 必须向最终用户征求所有内容的许可。 最终,您可以查看我是否没有弄错哪些其他软件包在运行时,一旦您知道了,您可能会找到杀死它们的方法。 试试这个并在你的清单上添加“android.permission.KILL_BACKGROUND_PROCESSES”权限:

private void killOtherApps(String packageTokill){

    List<ApplicationInfo> packages;
    PackageManager pm;
    pm = getPackageManager();
    //get a list of installed apps.
    packages = pm.getInstalledApplications(0);


    ActivityManager mActivityManager = (ActivityManager) MainActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
    String myPackage = getApplicationContext().getPackageName();

    for (ApplicationInfo packageInfo : packages) {

        if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1) {
            continue;
        }
        if(packageInfo.packageName.equals(myPackage)) {
            continue;
        }
        if(packageInfo.packageName.equals(packageTokill)) {
            mActivityManager.killBackgroundProcesses(packageInfo.packageName);    
        }

    }

}

如果您想要做的事情被允许,那将是一个巨大的安全问题——所以事实并非如此。 没有办法解决这个问题——因为那将是一个巨大的安全问题。

您将需要:

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

没有这些权限,这是不可能的。

暂无
暂无

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

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