0

3番目のアプリのActivityManager.RunningServiceInfoによって別のアプリのサーバーを強制終了します。たとえば、存続させたいアプリのサービスがない場合、他のサービス(Service START_STICKには適合しません)が強制終了されます。これが私のコードです:

 ActivityManager actManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

            List killapplist = actManager.getRunningAppProcesses();

            List killservicelist = actManager.getRunningServices(100);

            for (Object aKillapplist : killapplist) {

                ActivityManager.RunningAppProcessInfo localRunningAppProcessInfo = (ActivityManager.RunningAppProcessInfo)
                        aKillapplist;

                String appname = localRunningAppProcessInfo.processName;

                if (localRunningAppProcessInfo.pkgList != null) {

                    for (Object aKillservicelist : killservicelist) {
                        ActivityManager.RunningServiceInfo localRunningServiceInfo = (ActivityManager.RunningServiceInfo) aKillservicelist;
  //some condition start
                        try {
                            Intent intentstop = new Intent();

                            intentstop.setComponent(localRunningServiceInfo.service);
                            mContext.stopService(intentstop);
                        } catch (SecurityException e) {
                            e.printStackTrace();

                        }
 //some condition end
                    }

                }

            }

        } else {
            throw new MyException("kill list is empty");
        }

その後、常に警告メッセージを取得します

WARN/ActivityManager(363): Permission Denial: Accessing service ComponentInfo
WARN/System.err(5992): java.lang.SecurityException: Not allowed to stop service Intent 

sys署名の問題はありますか?私はいくつかの許可を使用しました

uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"
uses-permission android:name="android.permission.SHUTDOWN"
uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"

それを修正する方法は?ありがとう

4

1 に答える 1

2

パッケージがシステム証明書で署名されていない限り、権限"android.permission.SHUTDOWN"を使用することはできません。"android.permission.FORCE_STOP_PACKAGES"権限"android.permission.KILL_BACKGROUND_PROCESSES"を持っていると、プロセスのみを強制終了できます。

于 2012-11-12T10:14:28.417 に答える