我一直在这里阅读有关清理其他应用程序的内容,我也尝试编写自己的应用程序。我得到的结果是,使用Androids当前的安全层,这是不可能的。
但是,目前市场上有许多缓存清理应用程序(Google Play)?
当我启动我的android.permission.DELETE_CACHE_FILES
权限申请时,LogCat打印
Not granting permission android.permission.DELETE_CACHE_FILES to package <MY_PACKAGE_NAME> (protectionLevel=3 flags=0x8be46)
经过一些研究后我发现3:第一方应用程序不会被protectionLevel=3
授予权限所以,每当我尝试删除另一个应用程序缓存(逻辑上)时,我会遇到java.lang.SecurityException
我的问题是:“Google Play上的这些应用程序如何允许并能够删除其他应用程序缓存?”
抱歉我的英语不好,不是母语
答案 0 :(得分:4)
如果设备已植根且您的应用程序具有超级用户权限,则只能执行此操作。
答案 1 :(得分:0)
让我告诉你这些应用程序是如何实现这一目标的。
某些android classes have methods
默认情况下为private(@hidden)
用户。我们无法直接访问。但是你有更好的方法来使用Reflection
。
添加权限。
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>
并按照这些答案
https://stackoverflow.com/a/17334600/3496570
https://stackoverflow.com/a/14509140/3496570
并且不要忘记创建package
名称android.content.pm
并添加IPackageDataObserver.aidl来打包。那你很高兴。