728x90
2.1에서 잘 작동했던 restartpackage.
LogOut으로 썼는데 2.2에서는 사용할 수 없다.
근데 구글에는 같은 메소드가 다른이름으로 존재한다.
Google force closes packages in Android 2.2 (Froyo).
This happens over an internal API.
Method name is: forceStopPackage(String pkgName).
Class c = Class.forName("android.app.ActivityManagerNative"); Method getDefaultMethod = c.getMethod("getDefault"); getDefaultMethod.setAccessible(true); Object nativeManager = getDefaultMethod.invoke(null); c = nativeManager.getClass(); Method forceStopPackageMethod = c.getMethod("forceStopPackage", String.class); forceStopPackageMethod.setAccessible(true); forceStopPackageMethod.invoke(nativeManager, pkgName);->
java.lang.SecurityException: Permission Denial: forceStopPackage() from pid=1965, uid=10075 requires android.permission.FORCE_STOP_PACKAGES
권한이 없댄다. 그래서
AndroidManifest.xml 에 추가했다.
그런데 이것역시 되지 않는다.
The only problem is that in order to use this method, you need the “android.permission.FORCE_STOP_PACKAGES” permission, and that permission requires a “signature” protectionLevel, so the system will not grant it unless the app is signed with the same signature as the system
해당 권한은 시그너쳐로 보호되고 있어서
시스템과 같은 사인이 아니면 권한을 얻을 수 없댄다.
된장....
728x90