2012-07-11 100 views
2

我想從我們的文件服務器上安裝APK,以及它需要在用戶不能夠選擇是否將其安裝或接受的權限設置/更改默默地做。這是合法的業務需求,因爲我們正在與設備供應商合作將我們的應用程序預裝入/ system/app。這是一款定製的Android平板電腦設備,因此,我們的業務部門希望確保我們可以推送應用更新(即強制推出最新版本)。安裝一個Android APK程序

我明白平時的安全限制,但似乎有一種機制來安裝默默的爲供應商/製造水平的應用程序應用。然而,關於如何做到這一點的信息充其量只是非常斑點。

看來安裝程序包必須在/系統/應用程序和安裝程序必須具有相同的簽名證書密鑰所安裝的應用程序。這不是問題,但關於如何使用此流程實現此功能的信息是我尚未找到的。

任何人都曾經這樣做過?

+1

在自動更新?聽起來像是一個巨大的安全漏洞。這將是很酷的,但我懷疑Android操作系統會讓你這樣做。 +1 – 2012-07-11 14:23:06

+2

是的,Ryan是對的,但你仍然可以檢查http://stackoverflow.com/questions/5803999/install-apps-silently-with-granted-install-packages-permission尋找可行的方法。 – 2012-07-11 14:24:10

+1

當你問你的設備供應商這個問題時,他們告訴你什麼? – CommonsWare 2012-07-11 16:26:09

回答

1

我相當肯定你需要把它們運一個定製的Android ROM,讓您能夠做到這一點(我懷疑他們的業務將享受)。

亞馬遜應用商店正常的設備上不能像谷歌Play可以在後臺靜默安裝。也許Kindle Fire可以做到這一點(我沒有自己的),但如果可以的話,那是因爲它運行在由亞馬遜構建的自定義ROM上。

你能做的最好的事情就是發動告訴帶給需要更新,這使他們對安裝人員的活動,然後要求用戶交互,用戶應用程序的意圖。

0

不完全是一個答案。然而,我們最近面臨一個Android客戶端 - 服務器應用程序的類似要求。

每當應用程序通過請求與服務器聯繫時,它也會發送當前的versionCode。

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
//pInfo.versionCode; 
//pInfo.versionName; 

在服務器端,我們檢查的versionCode如果我們有一個新的版本,通知客戶端和客戶端強制用戶升級到新版本。客戶端應用程序在升級到新版本之前無法運行。但顯然用戶可以選擇不安裝等。

希望它有幫助。