反思方法来清除Android应用程序缓存(Reflecting methods to clear A

2019-09-16 16:14发布

我想清除其他Android应用程序的应用程序缓存,除了我自己。 要做到这一点,我使用的PackageManager类反射。 但是,每当我初始化方法之前,我调用它,它总是最终被空。

    private  void initiateClearUserData() {
    // Invoke uninstall or clear user data based on sysPackage
    String thePackageName;
    PackageManager pm = speedy.this.getPackageManager();
    List<ApplicationInfo> installedApps = pm.getInstalledApplications(0);
    ApplicationInfo ai;// = installedApps.get(0);
    ActivityManager.RunningAppProcessInfo process;
    for(int x=0; x<4; x++){
        ai = installedApps.get(x);

这里是我的问题是:

        thePackageName = ai.packageName.toString();// mAppEntry.info.packageName;
        Method deleteApplicationCacheFiles = null;
        mClearCacheObserver = new ClearCacheObserver();
    try {
        deleteApplicationCacheFiles = pm.getClass().getMethod(
             "deleteApplicationCacheFiles", String.class, PackageManager.class);
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 if(deleteApplicationCacheFiles!= null){
     try {
        deleteApplicationCacheFiles.invoke(thePackageName, mClearCacheObserver);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }else{
    Toast.makeText(speedy.this, "Hell naw",
            Toast.LENGTH_SHORT).show();
    }
    }
}

由于方法deleteApplicationCacheFiles为空,我的烤面包的消息出现。 有什么建议么?

Answer 1:

看看的文档安全在Android上: http://developer.android.com/guide/topics/security/security.html

在Android安全架构的核心设计的一点是,没有应用程序,默认情况下,必须执行,将其他应用程序,操作系统或用户造成不利影响的任何操作的权限。 这包括读取或写入用户的私人数据(如联系人或电子邮件),读取或写入其他应用程序的文件,访问网络,保持设备屏幕等。

这听起来像系统将阻止你做这(通过反射太)。



文章来源: Reflecting methods to clear Android app cache