2017-05-15 41 views
1

我在谷歌玻璃项目,在这里我要工作安装/更新一个应用程序编程,在我的研究,我有如下的并发症:如何提供系统权限可Android应用

  1. 获取系统对话框操作,以编程方式执行点击
  2. 为了以编程方式安装,意图导致 系统对话框获得用户权限,但无法以编程方式激发系统对话框的操作。该解决方案是没有可能 link

  3. 使用EMM解决方案(WSO2 IOT)
  4. 我以前 WSO2-IOT,但因为没有 device policy manager可供 谷歌玻璃,所以即使安装代理程序APK不会帮助,因为我不能利用由E​​MM(WSO2 IOT)提供的任何服务,而根(安装或更新我的应用程序)

  5. 获取系统权限
  6. 我n阶使用下列权限:
    • <使用的许可机器人:名称= “android.permission.INSTALL_PACKAGES”/>
    • <使用的许可机器人:名称= “android.permission.DELETE_PACKAGES”/>
    我的应用程序需要系统权限,以静默安装/删除/更新应用程序。

据我了解和研究迄今唯一目前的解决方案是第三个解决方案,那就是获得系统权限。为了得到它,我也尝试Sigined the APK with the system certificate.
我仍然得到错误:
java.lang.SecurityException: Neither user 10056 nor current process has android.permission.INSTALL_PACKAGES.
此外,我曾尝试加入android:sharedUserId="android.uid.system的清单描述here

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

任何有助于解决问题的建议都将得到高度评价。

谢谢。

回答

1

当您需要在设备中安装/更新应用程序时,您必须触发Package Manager并提供相关详细信息。但是为了触发软件包管理器,您必须拥有上述权限(android.permission.INSTALL_PACKAGES & android.permission.DELETE_PACKAGES),因此具有设备管理权限。正如您所说的,系统对话框的操作不可能自动化,系统对话框会提示您获取管理员权限。如果存在设备策略管理器,则概念也可用。因此你将不得不寻找替代品。

我可以为您提供一个轻量级版本的代理程序,该代理程序可以在您的google-glass中成功注册IoT服务器,而不会有任何麻烦。但是恐怕不可能做任何需要设备策略管理器的任务。 请在这里找到信息:https://github.com/milanperera/android-glass-agent

+0

谢谢,我同意你的意见。没有DevicePolicyManager,也没有可用的PlayServices。 我还没有满足DeviceOwner概念,但我会考虑这一点。 – asadnwfp