Подтвердить что ты не робот

Самообучающееся приложение

TL: DR; версия;)

  • мое приложение должно работать без взаимодействия с пользователем (работает автозапуск и т.д.)

  • он должен обновлять себя (через apk) без какого-либо взаимодействия с пользователем

  • возможно использование корневых устройств

.

Проблема:

  • запрос нового apk с сервера работает
  • При запуске apk с намерением (view?) появляется сообщение "установить приложение" и требуется подтверждение пользователя.

Как я могу решить это без какого-либо взаимодействия с пользователем?

http://code.google.com/p/auto-update-apk-client/ Это, кажется, решение, но должен быть лучший подход.

Я уже нашел это: Установить приложение программно на Android

но это не решает мою проблему.

4b9b3361

Ответ 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