Android DownloadManager 下載完成並安裝
DownloadManager 下載完成並安裝
話說blog還是要堅持寫的。僅僅是一個態度的問題 …….
DownloadManager 是Android系統提供的一個很好用的下載類。通過此類可以很方便的下載檔案並在通知欄顯示進度,不用再重寫通知欄。所以記錄一下使用方法與一些技巧。望批判
直接上程式碼吧
public void download(String downloadUrl) {
DownloadManager manager = (DownloadManager) mContext
.getSystemService (Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(downloadUrl));
request.setDescription("更新APP");
request.allowScanningByMediaScanner();// 設定可以被掃描到
request.setVisibleInDownloadsUi(true);// 設定下載可見
request.setNotificationVisibility (
DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);//下載完成後通知欄任然可見
String fileName = downloadUrl.substring(downloadUrl.lastIndexOf("/"));// 解析fileName
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS, fileName);// 設定下載位置,sdcard/Download/fileName
long refernece = manager.enqueue(request);// 加入下載並取得下載ID
SharedPreferences sPreferences = mContext.getSharedPreferences(
"downloadplato", 0);
sPreferences.edit().putLong("plato", refernece).commit();//儲存此次下載ID
}
獲取並儲存此次下載ID為了方便監聽下載完成,並處理相關下載後的事情,比如下載一個app,為了提高使用者體驗就要自動彈出安裝介面。這時候我們就要進行下載監聽
DownLoadBroadcastReceiver.java
package com.android.browser;
import android.annotation.SuppressLint;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import com.android.browser.core.LogUtils;
/**
* 下載完成廣播監聽:比如下載APP
*
* */
public class DownLoadBroadcastReceiver extends BroadcastReceiver {
@SuppressLint("NewApi")
public void onReceive(Context context, Intent intent) {
long myDwonloadID = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, -1);
LogUtils.i("下載完成 ID = " + myDwonloadID);
SharedPreferences sPreferences = context.getSharedPreferences(
"downloadplato", 0);
long refernece = sPreferences.getLong("plato", 0);
if (refernece == myDwonloadID) {
String serviceString = Context.DOWNLOAD_SERVICE;
DownloadManager dManager = (DownloadManager) context
.getSystemService(serviceString);
Intent install = new Intent(Intent.ACTION_VIEW);
Uri downloadFileUri = dManager
.getUriForDownloadedFile(myDwonloadID);
install.setDataAndType(downloadFileUri,
"application/vnd.android.package-archive");
install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(install);
}
}
}
// 記得註冊廣播
完成 Thank you . 謝謝
相關推薦
Android DownloadManager 下載完成並安裝
DownloadManager 下載完成並安裝 話說blog還是要堅持寫的。僅僅是一個態度的問題 ……. DownloadManager 是Android系統提供的一個很
DownloadManager下載APK並安裝(適配7.0,免費下載)
效果圖 DownloadManager(主角) 作用:下載管理器是一個處理長時間執行的HTTP下載的系統服務。客戶端可能要求將URI下載到特定的目標檔案。下載管理器將在後臺進行下載。 過程:在MainActivity中開啟IntentServi
Android DownloadManager下載並自動彈出安裝(轉載)
1.版本2.3以上 2. <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.per
Android DownLoadManager 下載
使用DownLoadManager實現下載apk功能,並安裝 使用downloadmanager需要了解: DownloadManager.Request(); DownloadManager.Query(); Request用來發送請求 Quer
Android實現下載圖片並儲存到SD卡中
在檔案裡設定一個點選方法已進行點選下載: download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String
android實現自動升級並安裝開啟
/** * 安裝APK檔案 */ private void installApk() { File apkfile = new File(mSavePath,Constant.appFileName); if (!apkfile.exists()) { return; } //
使用CrossApp實現版本更新管理(iOS端給AppStore連結,android端下載apk並替換)
版本更新管理從思路上來說是挺簡單的 1: 和後臺的版本資訊進行比較 2: 符合更新條件就開始更新(跳轉到連結或者下載apk檔案) 3: 替換(限android) 第一步: 因人而異,我是和後臺人員定好版本號的格式(如1.1 、1.1.1)。因為考慮到適用性我乾脆就寫
Android使用系統DownloadManager下載更新軟體,並自動跳轉到安裝頁面
介紹:https://www.jianshu.com/p/7ad92b3d9069 1.下載apk /* * 下載apk * @param context * @param title 通知的標題 * @param url 下載的地址 * @param id 返回一個加入下載佇列的i
Android N及以上版本應用安裝包下載完成自動彈出安裝介面的適配方法
Android N及以上版本應用安裝包下載完成自動彈出安裝介面的適配方法 在實現下載和安裝APP功能的時候在Android較高版本可能會遇到如下的問題: 安裝Apk時報錯:android.os.FileUriExposedException: file:///storag
Android下載完成更新後,沒有開啟安裝成功介面,出現閃退問題
最開始以為是android7.0許可權問題,後來發現在6.0手機上也是會出現這種問題的 這是修改之前的程式碼: Intent intent = new Intent(Intent.A
Android----- 版本更新和 伺服器下載新版本APK並安裝
前段時間有朋友問我版本更新的問題,所以來寫一篇版本更新和APK下載並安裝的部落格。 版本更新,幾乎在所有的專案中都用的到,一般是這樣的流程,當進入APP首頁是便會檢測版本是否為最新版本,不是則提示你下
Android下載並安裝APK
package com.cardvalue.sys.activitys; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Date;
IntentService+Notifcation實現應用app後臺下載完成後並安裝(已適配8.0)
更新———————————- 現在已相容8.0的通知欄顯示,確保你的targetSdkVersion 是26或以上 以下為8.0的顯示圖片: app的更新模組放在後臺服務可以大大提高app的體驗,採用IntentService這種google為我們
Android APP更新下載,實現Notification通知欄進度通知,下載完成後點選安裝
簡單做一個APP檢測更新的小工具,有點粗糙。不能斷點續傳,只用為個人覺得沒有必要,自己可根據大家的想法新增更多的功能,這裡只是為了想我一樣的初學者和比較簡約的人所提供。 效果如下: 基本思路先理一理,以我的實際開發為例:首先當然要一個網路去請求我們的
第一次使用Android Studio時你應該知道的一切配置(二):新建一個屬於自己的工程並安裝Genymotion模擬器
人性 pro net 參考 json irb 一個地方 vid 調試 【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p/439
windows下如何下載並安裝Python
.py back 版本號 eight word height win path lin 1.打開Python官網,點download中的windows(或者打開網址https://www.python.org/downloads/windows/) 2.下載exe後綴的可
Android SDK下載安裝及配置教程
搭建 roi 根據 空間 jre xtra 項目 lose android 最近Neo突發神經,想要將學過的一些計算機視覺、機器學習中的算法都放到移動設備上去跑跑,因為移動開發是大勢所趨嘛,希望能夠通過這樣一個實踐的過程,找到一些新的靈感(該不會是為了賺錢吧…),我自己目前
網狐Android客戶端一鍵發布並安裝到手機
oid post png info clas src log androi http 網狐Android客戶端一鍵發布並安裝到手機
Mac下命令行下載android源代碼並構建apk過程
prope sdk ack 下載源 lib cal per make master 前提是java 、sdk、ndk 、cmake、gradle 、gradlew都已經安裝和配置好。 1、下載源碼: git clone http://git-ma.xxxx.com.
2018年Unity結合Android SDK下載安裝及配置教程
Edito 安裝和配置 href csdn pack unity 存放位置 soft name 原文:2018年Unity結合Android SDK下載安裝及配置教程