#插件
1.package_info:获取应用版本信息
2.flutter_downloader :从服务器下载apk文件
配置:

provider     android:name="androidx.work.impl.WorkManagerInitializer"     android:authorities="${applicationId}.workmanager-init"     android:enabled="false"     android:exported="false" />            

添加安装文件权限

  

3.open_file:打开下载的apk文件,并自动安装
#代码
##获取应用版本信息

PackageInfo.fromPlatform().then((PackageInfo packageInfo) {      var currentVersionCode = packageInfo.buildNumber;      print("version:" + currentVersionCode + ",net:" + _serviceVersionCode);      //_serviceVersionCode为从服务器获取的升级最新的版本号      if (int.parse(_serviceVersionCode) > int.parse(currentVersionCode)) {        _showNewVersionAppDialog(packageInfo); //弹出“版本更新”的对话框      }    });

##下载apk文件
先对FlutterDownloader进行初始化

WidgetsFlutterBinding.ensureInitialized();await FlutterDownloader.initialize();

创建下载任务
先获取安装地址

 Future _apkLocalPath() async {    final directory = await getExternalStorageDirectory();    _localPath = directory.path.toString();    return _localPath;  }

创建存储文件

final path = (await _apkLocalPath()) + '/Download';    final saveDir = Directory(path);    bool hasExisted = await saveDir.exists();    if (!hasExisted) {      saveDir.create();    }

下载

 //下载    final tastId = await FlutterDownloader.enqueue(        url: downloadUrl,        fileName: "apkname.apk",        savedDir: path,        showNotification: true,        openFileFromNotification: true);

下载监听

 FlutterDownloader.registerCallback(downloadCallback);
 static void downloadCallback(      String id, DownloadTaskStatus status, int progress) {    //当下载完成时,调用安装    String dir;    if (status == DownloadTaskStatus.complete) {      FlutterDownloader.initialize().then((onValue){        FlutterDownloader.loadTasks().then((onValue){          DownloadTask downloadTask = onValue[0];          dir = downloadTask.savedDir;          OpenFile.open(dir);          FlutterDownloader.open(taskId: id);        });      });    }  }

更多相关文章

  1. Android 存储方式之文件存储
  2. Android 9.0 (P版本) SystemServer中的服务配置se linux权限
  3. Android studio报错:找不到匹配的任何版本。Android。支持:appcomp
  4. Android 下载文件 显示进度条
  5. 怎么查看android 版本
  6. 在AndroidManifest.xml文件中的android:windowSoftInputMode属性
  7. Andorid在布局文件中中文加粗
  8. android的文件、目录操作
  9. android Intent打开各种类型文件((PDF、word、excel、ppt、chm)

随机推荐

  1. Android(安卓)图片资源的异步加载2
  2. Android源码去除状态栏
  3. android 获取当前手机的 DHCP 信息ip,ser
  4. 让Android(安卓)studio支持java8
  5. [Android]How to use FFmpeg to decode A
  6. Android优秀开发资源
  7. Android(安卓)Listview不同item不同内容
  8. Android开发常见问题 不定期更新。开发环
  9. exp:Android(安卓)Studio调试系统源码的方
  10. exp:Android(安卓)Studio调试系统源码的方