Jak usunąć inną pamięć podręczną aplikacji z naszej aplikacji na Androida?

Próbuję opracować aplikację dla systemu Android, która mogłaby usunąć inne dane z pamięci podręcznej aplikacji, próbowałem przeglądać wszystkie blogi, ale żaden z nich nie działał dla mnie, mogę wyczyścić pamięć podręczną mojej aplikacji za pomocą następującego kodu

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();
}

Mój kod manifestu

<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>

Przetestowałem kod na 2.2, 2.3 i 4.0

i po obejrzeniu posta w poniższym linkuAndroid: Wyczyść pamięć podręczną wszystkich aplikacji?

Zmieniłem kod na

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;
   }
}

Chcę wyczyścić pamięć podręczną innej aplikacji, czy każde ciało proszę mi pomóc, proszę poprawić mnie, jeśli się mylę, Z góry dziękuję.

questionAnswers(3)

yourAnswerToTheQuestion