2017-05-15 55 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