【发布时间】:2013-08-25 06:04:15
【问题描述】:
我正在尝试以静默方式将 APK 安装到 Android 设备上,以尝试在我的应用中构建自动更新功能。该应用程序将下载最新的 apk 并静默安装。此应用程序不会在 Play 商店中分发,我专门为封闭用户组的一种设备构建它。我已经按照this SO 帖子中的说明实现了静默安装,但我遇到了问题。
我已使用从设备制造商处收到的证书对我的 apk 进行了签名,我正在尝试使用以下代码静默安装我新下载的 apk:
Process install = Runtime.getRuntime().exec("pm install -r " + path);
return install.waitFor();
waitFor() 方法返回退出值 9。我不知道这意味着什么,也找不到任何在线文档来解释每个代码的含义。我发现另一个SO post 解释了这些代码是任意的,并且取决于要定义的特定程序,并且我应该查阅该特定程序的文档/源代码以确定该代码的含义。我不确定如何执行此操作,我期待 waitFor() 方法的 Android 文档来解释每个代码。有谁知道我在哪里可以找到有关这些退出代码的信息?
非常感谢,
托尼
【问题讨论】:
-
我认为您必须使用供应商密钥签署您的 APK 才能读取该信息。意味着将其放入系统应用程序或仅针对有根手机。可能是错的。
-
@Shark 我已经使用从供应商处收到的 .pem / .pk8 文件签署了我的 apk,因此我应该具有系统级访问权限。我拍摄了 LogCat 的快照,试图阐明我对 KennyTM 的回复所涉及的问题。 Click here to have a look.
-
好的,如果你的 Android.mk 中有
LOCAL_CERTIFICATE:=platform并且它可以构建,那可能没问题。我在想你需要在这里针对 NDK 进行构建 - 但我可能又错了。可能只是您的应用缺少从未知来源安装新应用的权限或其他类似的......
标签: java android process silent-installer