Самообучающееся приложение
TL: DR; версия;)
-
мое приложение должно работать без взаимодействия с пользователем (работает автозапуск и т.д.)
-
он должен обновлять себя (через apk) без какого-либо взаимодействия с пользователем
-
возможно использование корневых устройств
.
Проблема:
- запрос нового apk с сервера работает
- При запуске apk с намерением (view?) появляется сообщение "установить приложение" и требуется подтверждение пользователя.
Как я могу решить это без какого-либо взаимодействия с пользователем?
http://code.google.com/p/auto-update-apk-client/
Это, кажется, решение, но должен быть лучший подход.
Я уже нашел это: Установить приложение программно на Android
но это не решает мою проблему.
Ответы
Ответ 1
Решил!: D
Он работает только в корневых устройствах, но отлично работает.
Используя unix cmd "pm" (packageManager), вы можете установить apks из sdcard, выполнив его как root.
Надеюсь, это поможет некоторым людям в будущем.
public static void installNewApk()
{
try
{
Runtime.getRuntime().exec(new String[] {"su", "-c", "pm install -r /mnt/internal/Download/fp.apk"});
}
catch (IOException e)
{
System.out.println(e.toString());
System.out.println("no root");
}
}
Необходимые разрешения:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Ответ 2
Мое предложение - использовать механизм плагина для обновления приложения. Вы можете динамически загружать классы из Интернета и запускать их внутри своего приложения без какого-либо взаимодействия с пользователем. В Интернете много ресурсов:
Как загрузить динамический класс Java на android/dalvik?
http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html