3

我开发了一个应用程序并想要更新自己并想要以下功能,设备已被植根:

1 自动检查可以在每次启动时更新(我可以)
2 将apk 文件下载到本地(我可以)
3 使用自定义对话框更新,或者静默更新(我不知道)

编辑:我的应用程序在电视上运行,带有遥控器,默认对话框可以控制但完美,所以如果必须有对话框我想使用我的对话框。如果不需要对话框最好。

4

3 回答 3

2

首先声明这个变量,然后在任何你想要的地方调用函数。然后授予超级用户,在您的超级用户应用程序上,选中始终授予选项以进行非用户交互。

  @Override
  public void onCreate() {
    super.onCreate();
            //some code...
             final String libs = "LD_LIBRARY_PATH=/vendor/lib:/system/lib ";

             final String commands = libs + "pm install -r " + "your apk directory"+ "app.apk";

             instalarApk(commands); 
 }

   private void instalarApk( String commands ) {
    try {

        Process p = Runtime.getRuntime().exec( "su" );
        InputStream es = p.getErrorStream();
        DataOutputStream os = new DataOutputStream(p.getOutputStream());

        os.writeBytes(commands + "\n");

        os.writeBytes("exit\n");
        os.flush();

        int read;
        byte[] buffer = new byte[4096];
        String output = new String();
        while ((read = es.read(buffer)) > 0) {
            output += new String(buffer, 0, read);
        }

        p.waitFor();

    } catch (IOException e) {
        Log.v(Debug.TAG, e.toString());
    } catch (InterruptedException e) {
        Log.v(Debug.TAG, e.toString());
    }
}
于 2014-05-29T13:50:47.110 回答
0

常规方式(没有 root 和默认安装程序对话框)在另一个问题中进行了描述,并且应该在大多数情况下使用恕我直言,因为我不喜欢为更新功能请求 root 权限。

提供自定义对话框和静默安装 apk 没有区别,因为两者在技术上都是静默安装(例如,不是由安装活动进行的)。使用 root 权限,您可以使用 root shell 并替换 apk(如在开源键盘管理器应用程序中)或从 shell调用包管理器。我建议您采用第二种方式,我链接了键盘管理器应用程序源,主要用于创建根 shell 的东西。

于 2013-09-03T03:48:10.823 回答
-2

Android 框架很难静默更新,在自定义设备上,您必须为您的 apk 文件调用系统安装服务,它会为用户显示安装对话框,但如果设备已植根,我认为您可以静默进行。

于 2013-09-03T03:39:27.930 回答