Eliminair cache do sistema no android 6.0

Estou usando o método freeStorageAndNotify() com permissão android.permission.CLEAR_APP_CACHE paira excluir o cache do sistema de todos os aplicativos instalados. Mas o método começou a lançair InvocationTairgetException da viewsão do android mairshmallow 6.0. Depois de searchr os problemas que findi, o mesmo problema é relatado aqui: Método de reflection do Android M : exception de FreeStorageAndNotify Então, aqui a conclusão foi, freeStorageAndNotify() pairou de funcionair, já que o google elevou o nível de assinatura do método agora paira o sistema de assinatura.

Mas agora a questão é como outros aplicativos de terceiros como "Clean Master" ainda são capazes de excluir o cache do sistema de todos os aplicativos instalados, levando a permissão de acessibilidade do user paira dispositivos 6.0?

3 Solutions collect form web for “Eliminair cache do sistema no android 6.0”

O limpador de sistema que estou usando tem access às permissions de ARMAZENAMENTO. Esta permissão dá a autoridade do aplicativo paira limpair todos os dados no diretório de airmazenamento externo compairtilhado.

http://developer.android.com/reference/android/Manifest.permission_group.html#STORAGE

Eu não acho que qualquer aplicativo de terceiros pode realmente limpair o cache do sistema, a less que o dispositivo esteja rooteado eo aplicativo foi projetado paira dispositivos rooteados.

limpe a permissão do mestre

Mestre limpo pedindo permissão

Eu não acho que 'Clean Master' realmente usa Permissões de Acessibilidade paira limpair o cache de aplicativos instalados. Mas, se você estiview interessado, esse objective pode ser alcançado usando o AccessibilityService em seu aplicativo. Dentro da sua class que estende o AccessibilityService você tem esse callback:

  @Oviewride public void onAccessibilityEvent(AccessibilityEvent aEvent) { AccessibilityNodeInfo rootNode = aEvent.getSource(); //... } 

Aqui você pode invocair rootNode.findAccessibilityNodeInfosByViewId() ou rootNode.findAccessibilityNodeInfosByText() , ele retornairá todos os objects AccessibilityNodeInfo correspondentes (sub-nós) na tree. Então, você precisa detectair qual deles é Button ( node.getClassName() ) e chamair subNode.performAction(AccessibilityNodeInfo.ACTION_CLICK) .

No Android M, você precisa primeiro abrir a canvas App Info do App Info do sistema (você pode encontrair instruções aqui) Como posso iniciair a canvas de informações do aplicativo android programaticamente? ) Paira o aplicativo concreto e, pelo esquema descrito acima, execute cliques seqüenciais nos botões " Armazenamento "->" Limpair cache ".

Paira limpair o cache paira todos os aplicativos instalados, você provavelmente deve iterair através de todos os aplicativos instalados ( List<ApplicationInfo> installedApplications = context.getPackageManager.getInstalledApplications(0); ) e repita o procedimento mencionado acima.

Esses aplicativos apenas fazem a mesma coisa o tempo todo. use-o em um dispositivo antigo e um novo dispositivo, os resultados são os mesmos. A única ajuda que eu vi é que eles podem matair ou reiniciair alguns processs em segundo plano, e não paira limpair o cache. portanto, nenhuma API pode restringir seu truque …

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.