Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反映清除Android应用程序缓存的方法_Java_Android_Caching_Reflection_Delete File - Fatal编程技术网

Java 反映清除Android应用程序缓存的方法

Java 反映清除Android应用程序缓存的方法,java,android,caching,reflection,delete-file,Java,Android,Caching,Reflection,Delete File,我正在尝试清除除我自己的应用程序之外的其他android应用程序的应用程序缓存。为此,我在PackageManager类上使用反射。然而,每当我在调用方法之前初始化它时,它总是以null结束 private void initiateClearUserData() { // Invoke uninstall or clear user data based on sysPackage String thePackageName; PackageManager p

我正在尝试清除除我自己的应用程序之外的其他android应用程序的应用程序缓存。为此,我在PackageManager类上使用反射。然而,每当我在调用方法之前初始化它时,它总是以null结束

    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);

由于方法deleteApplicationCacheFiles为null,因此将显示my toast消息。有什么建议吗?

看看Android上的安全文档:

安卓安全体系结构的一个核心设计点是,默认情况下,任何应用程序都无权执行任何可能对其他应用程序、操作系统或用户产生不利影响的操作。这包括读取或写入用户的私人数据(如联系人或电子邮件)、读取或写入其他应用程序的文件、执行网络访问、保持设备处于唤醒状态等


听起来系统会阻止你这样做(也会通过反射)。

Hi@TMiller你找到解决上述问题的方法了吗?既然我正在尝试类似的方法来强制停止并清除应用程序的数据?尽快回复,提前谢谢
        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();
    }
    }
}