Android Things:如何使用pm install -r从设备安装apk

时间:2017-11-21 14:49:09

标签: java android android-things

我正在尝试为Android Things app.apk构建自动更新程序。到目前为止,我已将.apk的新版本下载到/sdcard/download/app.apk中,我也可以通过adb终端从那里安装它,例如。

adb shell
pm install -r /sdcard/Download/app

现在我尝试通过设备本身做同样的事情。目前我有这个

Process install = Runtime.getRuntime().exec("pm install -r /sdcard/Download/app");
install.waitFor();

但没有任何反应。我试图像这样打开shell,但这次我得到了Cannot run program "su": error=13, Permission denied

 Process install = Runtime.getRuntime().exec("su");
 DataOutputStream out = new DataOutputStream(install.getOutputStream());
 out.writeBytes("pm install -r /sdcard/Download/app");
 out.flush();

是否有可能从设备本身安装下载的apk? The general way with Intent.ACTION_VIEW doesn't work either.它消隐了,就是这样。没有任何事情发生。

2 个答案:

答案 0 :(得分:0)

使用ADB命令

adb install /path-of-your-apk/app.apk

答案 1 :(得分:0)

您可以轻松启动安装提示:

Intent promptInstall = new Intent(Intent.ACTION_VIEW)
    .setDataAndType(Uri.parse("file:///path/to/your.apk"), 
                    "application/vnd.android.package-archive");
startActivity(promptInstall); 

但是,如果没有用户的明确许可,您将无法安装.apks。除非设备和程序已植根。