http://lovezhou.iteye.com/blog/932847
?
?
?
???? 應用軟件經常會因為功能的增加而升級,升級經常是在客戶端給用戶升級的提示,然后用戶下載最新的apk程序包,軟件升級過程大多數需要在線完成。?
????? android 在線安裝apk程序包,主要用到系統自帶的apk安裝器進行安裝。用到系統自帶的apk安裝器安裝apk包,首先需要在配置文件中加入權限聲明?
調用系統apk安裝器的主要代碼是:?
在正確url地址上下載下來apk后,先判斷下載下來的文件類型,然后通過apk安裝器即可安裝?
截圖:?
?
????? android 在線安裝apk程序包,主要用到系統自帶的apk安裝器進行安裝。用到系統自帶的apk安裝器安裝apk包,首先需要在配置文件中加入權限聲明?
- <uses-permission?android:name= "android.permission.INTERNET" ></uses-permission>??
- <uses-permission?android:name= "android.permission.INSTALL_PACKAGES" ></uses-permission>??
- <uses-permission?android:name= "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" ></uses-permission>??
- <uses-permission?android:name= "android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission??
調用系統apk安裝器的主要代碼是:?
- Intent?intent?=? new ?Intent();??
- ????intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);??
- ????intent.setAction(android.content.Intent.ACTION_VIEW);??
- ??????
- ???? /*?調用getMIMEType()來取得MimeType?*/ ??
- ????String?type?=?getMIMEType(f);??
- ???? /*?設置intent的file與MimeType?*/ ??
- ????intent.setDataAndType(Uri.fromFile(f),type);??
- ????startActivity(intent);???
在正確url地址上下載下來apk后,先判斷下載下來的文件類型,然后通過apk安裝器即可安裝?
截圖:?


更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

評論
很有可能是apk有問題,可以單獨安裝apk試試,看能否成功
單獨安裝可以安裝,這個我試過了!
很有可能是apk有問題,可以單獨安裝apk試試,看能否成功
這種是覆蓋安裝,覆蓋安裝apk的時候,應該不會刪掉數據庫文件,你可以試一下,沒測試過這個,不敢肯定,不好意思哈
這個是調用系統的安裝器,所以都要彈出這個界面,如果調用系統的,暫時還不知道怎么跳過這一步,Android安裝應用時,都會給用戶提示
有好的方法再一起分享
把升級后的apk放到server上,客戶端可以每次讀取server的一個地址,從上面解析是否需要升級,如果需要,再到指定的url上去下載apk在線安裝。
exp:server 的 url 中帶 update=1字段,客戶端每次請求這個url,可以改變update的值,雙方約定好
那這樣是不是意味著server一旦發布一個新的版本,就需要更新一次update值?
恩,一個參數,不知道有沒有更好的辦法,我現在只想到了這個
不是更新updata的值,可以約定好,比如說只有是3的時候更新,就可以了
把升級后的apk放到server上,客戶端可以每次讀取server的一個地址,從上面解析是否需要升級,如果需要,再到指定的url上去下載apk在線安裝。?
exp:server 的 url 中帶 update=1字段,客戶端每次請求這個url,可以改變update的值,雙方約定好
那這樣是不是意味著server一旦發布一個新的版本,就需要更新一次update值?
恩,一個參數,不知道有沒有更好的辦法,我現在只想到了這個
把升級后的apk放到server上,客戶端可以每次讀取server的一個地址,從上面解析是否需要升級,如果需要,再到指定的url上去下載apk在線安裝。?
exp:server 的 url 中帶 update=1字段,客戶端每次請求這個url,可以改變update的值,雙方約定好
那這樣是不是意味著server一旦發布一個新的版本,就需要更新一次update值?
把升級后的apk放到server上,客戶端可以每次讀取server的一個地址,從上面解析是否需要升級,如果需要,再到指定的url上去下載apk在線安裝。
exp:server 的 url 中帶 update=1字段,客戶端每次請求這個url,可以改變update的值,雙方約定好
apk簽名要相同,否則無法覆蓋安裝
嗯,謝謝,你這里的簽名相同,指的是私鑰???還是別的什么?
key
apk簽名要相同,否則無法覆蓋安裝
嗯,謝謝,你這里的簽名相同,指的是私鑰???還是別的什么?
apk簽名要相同,否則無法覆蓋安裝
可以啊,當時我們就是server和client約定的
暫時沒找到辦法判斷,我們之前做的是把新的apk直接放到url地址上,下載