自我更新应用

Thk*_*kru 23 android updating self-updating apk

TL:DR; 版本;)

  • 我的应用应该在没有用户交互的情况下运行(自动启动等工作)

  • 它应该更新自己(通过apk),无需任何用户交互

  • 有根设备是可能的

.

问题:

  • 从服务器查询更新的apk工作
  • 当以(视图?)意图启动apk时,"安装应用"提示弹出并需要用户确认

如何在没有任何用户交互的情况下解决此问题

http://code.google.com/p/auto-update-apk-client/ 这似乎是一个解决方案,但必须有更好的方法.

我已经找到了这个:在Android上以编程方式安装应用程序

但这并没有解决我的问题.

Thk*_*kru 35

解决了!:d

它只适用于root设备,但效果很好.使用unix cmd"pm"(packageManager)允许您在以root身份执行时从sdcard安装apks.

希望这可以在将来帮助一些人.

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");
        }
}
Run Code Online (Sandbox Code Playgroud)

所需权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)


Zie*_*ony 5

我的建议是使用更新应用程序的插件机制instad.您可以从Web动态加载类并在应用程序内运行它们,而无需任何用户交互.互联网上有很多资源:

如何在android/dalvik上动态加载Java类?

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html