Страница 1 из 1
Самоудаление
Добавлено: 24 ноя 2013, 19:01
tirpitz28
Возможно ли запрограммировать так, чтобы приложение Android могло удалить само себя?
Re: Самоудаление
Добавлено: 24 ноя 2013, 21:55
trew
tirpitz28 писал(а):Возможно ли запрограммировать так, чтобы приложение Android могло удалить само себя?
Вот так нужно искать в поисковике:
android delete app own
Re: Самоудаление
Добавлено: 24 ноя 2013, 22:01
tirpitz28
Спасибо огромное!
Re: Самоудаление
Добавлено: 25 ноя 2013, 19:27
tirpitz28
Реализовал приложение полностью все, что мне нужно было, сейчас пытаюсь сделать самоудаление - вызываю функцию deleteDir(File dir), а какой параметр туда писать не знаю, так как даже не знаю куда на эмуляторе приложение устанавливается. Как быть?=(
Re: Самоудаление
Добавлено: 25 ноя 2013, 19:42
trew
tirpitz28 писал(а):Реализовал приложение полностью все, что мне нужно было, сейчас пытаюсь сделать самоудаление - вызываю функцию deleteDir(File dir), а какой параметр туда писать не знаю, так как даже не знаю куда на эмуляторе приложение устанавливается. Как быть?=(
[syntax=java] String appPath = getApplicationInfo().dataDir;[/syntax]Возвращает:
/data/data/<homeAppDir>
homeAppDir - это имя пакета вашей программы
Только вот не знаю, для всех версий android подходит данный способ или нет.
Re: Самоудаление
Добавлено: 25 ноя 2013, 19:47
tirpitz28
Огромное спасибо! Сейчас попробую и отпишусь
Re: Самоудаление
Добавлено: 26 ноя 2013, 13:35
tirpitz28
trew писал(а):tirpitz28 писал(а):Возможно ли запрограммировать так, чтобы приложение Android могло удалить само себя?
Вот так нужно искать в поисковике:
android delete app own
В приведенном примере по ссылке
android delete app own использовал функцию
[syntax=java]
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
));
if (!success) {
return false;
}
}
}
return dir.delete();
}
[/syntax]
Передавал в нее параметр
[syntax=java] String appPath = getApplicationInfo().dataDir;[/syntax]
Все работает без ошибок, но ничего не происходит
Вышеуказанная строка действительно возвращает путь, но через консоль я вижу что не полный, так как в конце добавляется -1.apk -2.apk и так далее, пытался добавлять даже в цикле эти хвостики все равно процесс самоудаления не происходит=(
Re: Самоудаление
Добавлено: 26 ноя 2013, 14:00
trew
Начинать нужно не с циклов, а со строки типа String.
Путь до программы у вас есть? Да.
/data/data/имя_пакета
1. выведите в лог путь, по которому удаляете программу. убедитесь что он верный.
2. научитесь удалять одну программу.
3. разбирайтесь с циклом.
Re: Самоудаление
Добавлено: 26 ноя 2013, 15:46
tirpitz28
Я удалял одну программу, но удалял ее в цикле, прописав все возможные варианты имени, но по последнему комментарию понял - что удалял ее не из того каталога