2012-04-21 59 views
0

我试图清除除我自己之外的其他Android应用程序的应用程序缓存。为此,我在PackageManager类上使用反射。然而,无论何时在我调用它之前初始化该方法,它总是以null结尾。反映清除Android应用程序缓存的方法

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为空,我的烤面包的消息出现。有什么建议么?

+0

嗨@TMiller你找到一个解决方案,你的上述问题?因为我尝试类似的方式来强制停止并清除应用程序的数据?尽快回复,谢谢 – Sudarshan 2013-02-07 06:40:49

回答

1

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

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

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

相关问题