2012-12-27 24 views
1

我一直在這裏閱讀有關清理另一個應用程序cahce-memory的內容,我也嘗試編寫我自己的應用程序。我得到的結果是,與Android的當前安全層,這是不可能的。清除另一個應用程序緩存

但是,目前市場上有很多緩存清理應用程序(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

看看我的回答 – Nepster

回答

4

如果設備是植根和應用程序具有超級用戶權限只能做到這一點。

+1

但是目前在GooglePlay上沒有需要root的應用程序,請問 – MAA

+0

我不知道。你能提供一個例子嗎? – Ahmad

+0

https://play.google.com/store/search?q=cache+cleaner&c=apps – MAA

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

而且不要忘記創建packageandroid.content.pm並添加IPackageDataObserver.aidl包裝。那麼你很好去。

相關問題