1

我正在研究一个google-glass项目,我必须以编程方式安装/更新应用程序,在我的研究中我有以下并发症:

  1. 获取系统对话框操作,以编程方式执行单击
  2. 为了以编程方式安装,意图导致系统对话框获得用户许可,但不可能以编程方式刺激系统对话框的动作。此解决方案是没有可能的链接

  3. 使用EMM解决方案 (WSO2 IOT)
  4. 我使用了 WSO2-IOT,但由于没有可用于google-glass的设备策略管理器,因此即使安装代理 apk 也无济于事,因为我无法使用 EMM (WSO2 IOT) 提供的任何服务,(安装或更新我的应用程序)

  5. 无需root即可获得系统权限
  6. 为了使用以下权限:
    • <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
    • <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
    我的应用程序需要系统权限才能静默安装/删除/更新应用程序。

根据我目前的知识和研究,目前唯一的解决方案是第三种解决方案,即获取系统特权。为了得到它,我还尝试使用系统证书对 APK 进行 Sigined。
我仍然收到错误消息:
java.lang.SecurityException: Neither user 10056 nor current process has android.permission.INSTALL_PACKAGES.
我也尝试按照此处android:sharedUserId="android.uid.system所述添加到清单中

到目前为止,还没有成功实现它。我想知道如何实现在后台静默安装应用程序,而无需生根设备

任何有帮助的建议都会受到高度重视。

谢谢你。

4

1 回答 1

2

当您需要在设备中安装/更新应用程序时,您必须使用相关详细信息触发包管理器。但是要触发包管理器,您必须具有上述权限(android.permission.INSTALL_PACKAGES 和 android.permission.DELETE_PACKAGES),从而获得设备管理员权限。正如您所说,无法自动执行提示获取管理员权限的系统对话框的操作。

如果存在设备策略管理器,则设备所有者概念也可用因此,您将不得不寻找替代方案。

我可以为您提供一个轻量级版本的代理,它可以成功注册到 IoT 服务器,而无需在您的 google-glass 中遇到任何麻烦。但恐怕不可能执行任何需要设备策略管理器的任务。请在此处查找来源:https ://github.com/milanperera/android-glass-agent

于 2017-09-07T03:52:34.503 回答