Android 7.0版本升级解析包错误
2017-06-14 15:01
411 查看
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()公有绝对路径
下载:private void downLoadNewVersion() {
OkHttpUtils.get()
.url(url)
.headers(PackOkHttpUtils.getHeadsMap(this))
.tag(MainActivity.class)
.addParams("version", CommonParamsUtil.getVersion(getApplicationContext()))
.build()
.execute(new FileCallBack(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath(), "ypw.apk") {
@Override
public void inProgress(float progress, long total, int id) {
super.inProgress(progress, total, id);
int progressInt = (int) (progress * 100);
progressDialog.setProgress(progressInt);
}
@Override
public void onError(Call call, Exception e, int id) {
MyToast.showMessage("下载失败");
List<AppCompatActivity> activities = ((MyAppLication) getApplication()).getActivities();
for (AppCompatActivity activity : activities) {
activity.finish();
}
}
@Override
public void onResponse(File response, int id) {
SPUtils.putBoolean("VersionUpdate", false);
progressDialog.dismiss();
Uri uri = Uri.fromFile(response);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//7.0系统
uri = FileProvider.getUriForFile
(MainActivity.this, "com.youpinwallet.ypw.provider", response);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件
}
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);
}
});
}AndroidManifest.xml<!-- 适配7.0系统数据 -->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="自己的包名.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<external-path path="" name="camera_photos" />
</paths>
</resources>
下载:private void downLoadNewVersion() {
OkHttpUtils.get()
.url(url)
.headers(PackOkHttpUtils.getHeadsMap(this))
.tag(MainActivity.class)
.addParams("version", CommonParamsUtil.getVersion(getApplicationContext()))
.build()
.execute(new FileCallBack(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath(), "ypw.apk") {
@Override
public void inProgress(float progress, long total, int id) {
super.inProgress(progress, total, id);
int progressInt = (int) (progress * 100);
progressDialog.setProgress(progressInt);
}
@Override
public void onError(Call call, Exception e, int id) {
MyToast.showMessage("下载失败");
List<AppCompatActivity> activities = ((MyAppLication) getApplication()).getActivities();
for (AppCompatActivity activity : activities) {
activity.finish();
}
}
@Override
public void onResponse(File response, int id) {
SPUtils.putBoolean("VersionUpdate", false);
progressDialog.dismiss();
Uri uri = Uri.fromFile(response);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//7.0系统
uri = FileProvider.getUriForFile
(MainActivity.this, "com.youpinwallet.ypw.provider", response);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件
}
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);
}
});
}AndroidManifest.xml<!-- 适配7.0系统数据 -->
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="自己的包名.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<external-path path="" name="camera_photos" />
</paths>
</resources>
相关文章推荐
- Android SQLite数据库版本升级原理解析
- Android SQLite数据库版本升级原理解析
- Android SQLite数据库版本升级原理解析
- Android SQLite数据库版本升级原理解析
- Android sqlite数据库版本升级解析
- Android-7.0系统安装异常之解析包错误
- Android SQLite数据库版本升级原理解析
- Android数据库版本升级解析
- Android Studio升级到2.3版本后出现gradle解压错误
- Android apk升级 兼容6.0 7.0 低版本 华为手机
- Android 7.0 出现 ”FileUriExposedException“ 和 ”解析包出现错误“ 异常的解决办法
- android app版本升级(DownloadManager、适配6.0、7.0)
- Android7.0的手机升级安装APK时,出现FileUriExposedException错误
- Android SQLite数据库版本升级原理解析
- Android SQLite数据库版本升级原理解析
- 升级早期ASP.NET的Beta版程序到Beta 2时的错误信息提示,兼容性考虑和版本转换
- ubuntu 11.10 编译android aosp 由于gcc版本过高引起的错误,安装 gcc 4.4
- Android培训班(85)升级到4.0版本
- android apk文件在模拟器上运行正常,在真机中出现解析包错误解决办法集锦
- android中如何让自己开发的软件周期性的进行版本升级的提示