步驟:
int versioncode = 0;
try catch (namenotfoundexception e)
request = new downloadmanager.request(uri.parse(url));
// 設定通知欄標題
request.setnotificationvisibility(downloadmanager.request.visibility_visible_notify_completed);
request.settitle("一儒快遞");//
request.setallowedoverroaming(false);
request.allowscanningbymediascanner();// 可被**掃瞄到
request.setvisibleindownloadsui(true);// 可見和管理
filepath = dir.tostring() + "/" + "insurework" + getversioncode() + ".apk";
// 設定檔案存放目錄
request.setdestinationinexternalfilesdir(this, environment.directory_downloads, "insurework" + getversioncode() + ".apk");
did = downmanager.enqueue(request);
intentfilter filter = new intentfilter();
filter.addaction(downloadmanager.action_download_complete);
filter.addaction(downloadmanager.action_notification_clicked);
receiver = new downloadcompletereceiver();
registerreceiver(receiver, filter);
@override
protected void ondestroy()
自定義的廣播接收者,在接收者中作版本適配
private class downloadcompletereceiver extends broadcastreceiver else if (version.sdk_int >= version_codes.o) else , constent.new_8_0_request);
}} else
} catch (exception e)
}} else if (intent.getaction().equals(
downloadmanager.action_notification_clicked))
}}
其中8.0系統需要申請許可權
@override
public void onrequestpermissionsresult(int requestcode, @nonnull string permissions, @nonnull int grantresults)
}
7.0以上自動安裝邏輯
private void installapk()
內容提供者:res下新建xml資料夾,新建file_paths.xml檔案
<?xml version="1.0" encoding="utf-8"?>
在androidmanifest.xml設定provide
結束。 android app版本更新簡介
一 訪問伺服器,獲取最新版的版本資訊 獲取服務端版本號 public static int getversion string url fos.flush in.close fos.close fileinputstream fis new fileinputstream file 對版本檔案進行x...
Android app內更新,相容7 0
2018 01 09 haoshiwei 相容7.0 public class downloadutils public void downloadapk string url,string name private broadcastreceiver receiver new broadcastr...
Android App 更新的實現方法
首先軟體更新需要判斷是否需要更新。如果需要更新,需要獲取更新的鏈結。我們可以把這個看成乙個簡單的系統。需要客戶端請求和服務端相應。2 這樣簡單的伺服器端就可以了。獲取軟體系統版本號 try catch namenotfoundexception e 有的時候,我們可能需要獲取手機系統的一些資料,用來...