2012-11-12 3 views
0

세 번째 앱에서 ActivityManager.RunningServiceInfo에 의해 다른 앱의 서버를 종료하고 싶습니다. 예를 들어, 일부 앱의 서비스를 계속 사용하고 싶다면 다른 서비스 (서비스 START_STICK에 맞지 않음)가 삭제됩니다. 여기 내 코드입니다 :java.lang.SecurityException : 서비스를 중지 할 수 없습니다. 의도?

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 서명의 문제 MSG 경고거야? 좀 허락

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" 

어떻게 문제를 해결하는

를 사용? 감사합니다.

답변

2

패키지가 시스템 인증서로 서명되지 않은 경우 "android.permission.SHUTDOWN""android.permission.FORCE_STOP_PACKAGES" 권한을 사용할 수 없습니다. 허가 "android.permission.KILL_BACKGROUND_PROCESSES"을 가짐으로써 프로세스 만 죽일 수 있습니다.

+0

응용 프로그램의 Android.mk 파일에 LOCAL_CERTIFICATE : = platform을 추가해야합니다. – Yury

+0

정말 고마워요. –

관련 문제