安卓开发 Android Cookie

Android 安卓是最开放的手机操作系统,谷歌安卓APP开发和安卓市场的相关话题

清除另一个应用程序的数据

我正在编写一个应该能够清除任何其他应用程序的私有数据的应用程序。 如果您对这个用例感到疑惑,那么它就像MDM / MAM客户端一样。 我想有选择地擦除应用程序数据(相对于完整的设备擦除)。 我在Android源代码中遇到了以下API调用。 ActivityManager.clearApplicationUserData(String packageName,IPackageDataObserverobserver) 奇怪的是,作为SDK的一部分,您并不真正可以使用它。 (所以日食会让你试图使用它)。 但是,它存在(见此处 ),您可以通过reflection调用它。 但是,我仍然无法获得IPackageDataObserver接口。 有更好的方法吗? 我知道可以做到这一点,因为我看到像MaaS360这样的产品会对应用程序的数据进行选择性擦除。 有什么建议么? UPDATE 根据@lechlukasz在下面列出的内容……以下代码可以执行…但是您最终会使用SecurityException,因为程序包管理器会在安装应用程序时撤消CLEAR_APP_USER_DATA权限。 Class iPackageDataObserverClass= Class.forName(“android.content.pm.IPackageDataObserver”); Class activityManagerClass=ActivityManager.class; ActivityManager activityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); Method clearDataMethod=activityManagerClass.getMethods()[0]; Object iPackageDataObserverObject = Proxy.newProxyInstance( MyApp.class.getClassLoader(), new Class[]{iPackageDataObserverClass}, new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Log.i(“Proxy”, method.getName() + “: ” + […]