您好,登錄后才能下訂單哦!
//設置自定義下載文件路徑
UpdateUtils.APP_UPDATE_DOWN_APK_PATH = "apk" + File.separator + "downApk";
String desc = getResources().getString(R.string.update_content_info);
/*
* @param isForceUpdate 是否強制更新
* @param desc 更新文案
* @param url 下載鏈接
* @param apkFileName apk下載文件路徑名稱
* @param packName 包名
*/
UpdateFragment.showFragment(MainActivity.this,
false,firstUrl,apkName,desc,BuildConfig.APPLICATION_ID);
/**
* 關于在代碼中安裝 APK 文件,在 Android N 以后,為了安卓系統為了安全考慮,不能直接訪問軟件
* 需要使用 fileProvider 機制來訪問、打開 APK 文件。
* 普通安裝
* @param context 上下文
* @param apkPath path,文件路徑
* @param pathName 你的包名
*/
public static void installNormal(Context context, String apkPath , String pathName) {
if(apkPath==null || pathName==null){
return;
}
Intent intent = new Intent(Intent.ACTION_VIEW);
File apkFile = new File(apkPath);
// 由于沒有在Activity環境下啟動Activity,設置下面的標簽
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//版本在7.0以上是不能直接通過uri訪問的
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//參數1 上下文, 參數2 Provider主機地址 和配置文件中保持一致 參數3 共享的文件
Uri apkUri = FileProvider.getUriForFile(context, pathName+".fileProvider", apkFile);
//添加這一句表示對目標應用臨時授權該Uri所代表的文件
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
} else {
Uri uri = Uri.fromFile(apkFile);
intent.setDataAndType(uri, "application/vnd.android.package-archive");
}
context.startActivity(intent);
}
<provider
android:name=".VersionFileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="." />
<root-path
name="root_path"
path="." />
</paths>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://×××w.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。