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


- 2011-02-27 23:03
- 瀏覽 5363
- 評論(21)
- 收藏
- 分類: 移動開發(fā)
- 相關(guān)推薦
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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

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