Очистить данные всех приложений из вашего приложения (Launcher)

Я создал приложение, которое работает как лаунчер. В этом приложении у меня открываются различные другие приложения. В этом приложении я хочу очистить все данные (т. Е. Данные для входа в систему, историю поиска) другого приложения и удалить их одним нажатием кнопки.

PackageManager pm = getPackageManager();
            Method[] methods = pm.getClass().getDeclaredMethods();
            for (Method m:methods){
                if(m.getName().equals("freeStorage")){
                    try{
                        long desiredFreeStorage = Long.MAX_VALUE;
                        m.invoke(pm,desiredFreeStorage,null);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    break;
                }
            }

Используя приведенный выше код, я могу удалить кеш, но не могу удалить данные других приложений.

Пожалуйста, предоставьте мне решение для этого. Извините за мой плохой английский.

1 ответ

Это нормальное поведение. вы не можете удалить данные, которые принадлежат другим приложениям через ваше приложение. Файлы, которые содержат данные, являются частными и доступны только приложениям, которым они принадлежат или которые являются общими для приложения.

Например, большинство приложений используют SharedPreference как личные файлы для сохранения данных для последующего использования. Таким образом, бессмысленно, если другие приложения могут удалить эти данные.

Другие вопросы по тегам