Comment faire pour supprimer d'autres applications de cache à partir de notre application android?
Je suis en train de développer une application android qui pourrait effacer les autres le cache de l'application de données, j'ai essayé de parcourir la liste de tous les blogs, mais aucune n'a fonctionné pour moi, je peux en mesure d'effacer de mon application en cache par le code suivant
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists())
{
String[] children = appDir.list();
for (String s : children)
{
if (!s.equals("lib"))
{
deleteDir(new File(appDir, s));
Toast.makeText(DroidCleaner.this, "Cache Cleaned", Toast.LENGTH_LONG).show();
Log.i("TAG", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
}
}
}
public static boolean deleteDir(File dir)
{
if (dir != null && dir.isDirectory())
{
String[] children = dir.list();
for (int i = 0; i < children.length; i++)
{
boolean success = deleteDir(new File(dir, children[i]));
if (!success)
{
return false;
}
}
}
return dir.delete();
}
Mon manifeste code
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>
J'ai testé le code sur 2.2, 2.3 et 4.0
et après avoir vu le post avec le lien suivant Android: Effacer le Cache de Toutes les Applications?
J'ai changé mon code de
PackageManager pm = getPackageManager();
//Get all methods on the PackageManager
Method[] methods = pm.getClass().getDeclaredMethods();
for (Method m : methods) {
if (m.getName().equals("freeStorage")) {
//Found the method I want to use
try {
long desiredFreeStorage = 8 * 1024 * 1024 * 1024; //Request for 8GB of free space
m.invoke(pm, desiredFreeStorage , null);
} catch (Exception e) {
//Method invocation failed. Could be a permission problem
}
break;
}
}
Je veux effacer d'autres de l'application cache, tout organisme peut s'il vous plaît aidez-moi, s'il vous plaît corrigez-moi si je me trompe, Merci d'avance.
Pensez-vous que vous serez autorisé à gérer les autres données de l'application?
Pas avec de la racine, mais si vous voyez Propre Master, l'Histoire de la Gomme etc les applications qui sont disponibles dans le magasin de jeu, ils sont la réalisation de la tâche.
Voir ma réponse à stackoverflow.com/questions/14507092/...
Il ne fonctionne pas pour moi @David Wasser
Veuillez expliquer "pas de travail". Avez-vous regarder dans le logcat pour toute erreur ou d'autres messages (ne pas filtrer logcat ou vous risquez de manquer quelque chose d'important)? Avez-vous fourni les autorisations correctes? Post votre manifeste. Quels dispositifs avez-vous testé?
Pas avec de la racine, mais si vous voyez Propre Master, l'Histoire de la Gomme etc les applications qui sont disponibles dans le magasin de jeu, ils sont la réalisation de la tâche.
Voir ma réponse à stackoverflow.com/questions/14507092/...
Il ne fonctionne pas pour moi @David Wasser
Veuillez expliquer "pas de travail". Avez-vous regarder dans le logcat pour toute erreur ou d'autres messages (ne pas filtrer logcat ou vous risquez de manquer quelque chose d'important)? Avez-vous fourni les autorisations correctes? Post votre manifeste. Quels dispositifs avez-vous testé?
OriginalL'auteur Chethan Shetty | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Cette API n'est pas plus pris en charge dans l'API 23, c'est de la Guimauve. L'autorisation est obsolète dans la Guimauve.
Mais il est une autre façon en demandant de l'exécution l'autorisation de Accessoires. Essayez l'app All-in-one Toolbox à partir de play store. Cette application est en mesure d'effacer d'autres applications cache même dans la Guimauve. Ensuite, il devrait être possible pour nous de le faire.
Je fais des recherches sur ce. Une fois j'ai trouvé la solution, je vais mettre à jour la réponse. Merci.
J'ai utilisé le code suivant et maintenant, je suis en mesure d'effacer le cache de toutes les applications sans enracinement, il fonctionne parfaitement pour moi,
Et aussi de créer un paquet dans votre
src
dossier avec le nomandroid.content.pm
à l'intérieur de ce paquet de créer un fichier dans le nomIPackageDataObserver.aidl
et collez le code suivant à ilet dans votre manifeste, assurez-vous que vous avez utilisé le code suivant
Les gars si vous trouvez n'importe quel problème hésitez pas à me contacter, Merci.
IPackageDataObserver
choses. Il suffit d'appeler la méthode comme ceci:localMethod.invoke(mPM, localLong, null)
.Shetty, si je veux effacer les données de l'application spécifique comment puis-je faire cela?comment puis-je vérifier pour les colis
grâce à son travail maintenant...
Les gars comme vous l'avez dit-je créer un android.contenu.h package de la src et aussi un IPackageDataObserver.aidl. Mais j'ai 2 problèmes: le premier est que oneway syntaxe dans l'Intreface toujours d'erreur et le IPackageDataObserver ne pas reconnaître dans clearcache fonction. pouvez-vous m'aider?
IPackageDataObserver.Stub pas résolu où je définir une classe et d'étendre IPackageDataObserver.Stub. S'il vous plaît aider. J'ai créé le package comme vous l'a dit.
OriginalL'auteur Chethan Shetty
Cache n'est pas seulement une chose. Pour chaque application il y a un cache de dossier dans le système de dossiers de données et l'un dossier de cache pour chaque partition de stockage disponible (l'un en interne de l'appareil de la carte sd et si il y a une carte sd externe puis il y a celui là aussi)
Donc, pour effacer le cache dans le système de dossiers de données vous faire
Parce que vous n'avez pas accès au système de dossiers pour les supprimer par votre auto dans un non enraciné de l'appareil si vous demandez poliment Android pour le faire pour vous.
Pour effacer le cache dans le non-données du système de dossiers que vous le faire
Le tout dans une boîte à outils NE PAS vider le cache du système de dossiers de données dans marshmellow parce qu'il n'est pas possible sans accès root. Il utilise seulement la deuxième technique et efface une partie du total cache. À atteindre que dans l'API 23 et au-dessus, sans accès root, vous devez être un système d'application, car il n'existe aucun moyen de demander le android.la permission.CLEAR_APP_CACHE autorisation à l'aide de l'API d'Autorisation
storageVolumePaths
OriginalL'auteur Anonymous
Une autre alternative est d'ajouter la layoutlib.jar fichier situé dans le \sdk\plateformes\android-19\data répertoire, à la bibliothèque de votre projet. Vous serez en mesure de résoudre cette question et d'autres classes sans avoir à ajouter manuellement le code source.
Je dois ajouter que ce seront les classes ne seront pas ajoutés à votre binaire. Il va seulement vous permettre de résoudre les clases.
OriginalL'auteur Storo