Android安裝apk文件并適配Android 7.0詳解
Android安裝apk文件并適配Android 7.0詳解
首先在AndroidManifest.xml文件,activity同級節(jié)點注冊provider:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.file_provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
將apk文件下載到此路徑:
String cachePath = (
getExternalFilesDir("upgrade_apk") +
File.separator +
getPackageName() +
".apk");
在res目錄xml文件夾下創(chuàng)建名為file_paths的文件:upgrade_apk代表上面保存路徑的文件夾名稱,可隨意更改,相同即可。
<?xml version="1.0" encoding="utf-8"?> <paths> <external-files-path name="bga_upgrade_apk" path="upgrade_apk" /> </paths>
最后編寫代碼,區(qū)分不同Android系統(tǒng)版本號,安裝apk(注意:【com.apkinstall.demo】要替換自己應用的包名)
/**
* 安裝 apk 文件
*
* @param apkFile
*/
public void installApk(File apkFile) {
Intent installApkIntent = new Intent();
installApkIntent.setAction(Intent.ACTION_VIEW);
installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);
installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "com.apkinstall.demo.file_provider", apkFile), "application/vnd.android.package-archive");
installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
}
if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) {
startActivity(installApkIntent);
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Android 高版本API方法在低版本系統(tǒng)上的兼容性處理
本文主要介紹Android 高版本API方法在低版本系統(tǒng)上的兼容性處理的問題,這里提供了解決辦法,并附簡單示例,來詳細說明解決問題步驟,有需要的小伙伴可以參考下2016-09-09
android上一個可追蹤代碼具體到函數(shù)某行的日志類
追蹤代碼到函數(shù)具體某行,這樣的功能,是每一個程序員都希望會有的,因為它可以幫助我們追蹤到某行代碼的錯誤,接下來介紹下android上一個可追蹤代碼到函數(shù)具體某行的日志類,希望對開發(fā)者有所幫助2012-12-12
Android RecyclerView區(qū)分視圖類型的Divider的實現(xiàn)
本篇文章主要介紹了Android RecyclerView區(qū)分視圖類型的Divider的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
android Jsoup獲取網(wǎng)站內(nèi)容 android獲取新聞標題實例
這篇文章主要為大家詳細介紹了android Jsoup獲取網(wǎng)站內(nèi)容,android獲取新聞標題實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Android應用開發(fā)中使用Fragment的入門學習教程
這篇文章主要介紹了Android應用開發(fā)中Fragment的入門學習教程,可以把Fragment看作為Activity基礎之上的模塊,需要的朋友可以參考下2016-02-02
Android 虛擬機中的內(nèi)存分配與OOM問題詳解
這篇文章主要為大家介紹了Android 虛擬機中的內(nèi)存分配與OOM問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
簡單介紹Android開發(fā)中的Activity控件的基本概念
這篇文章主要介紹了Android開發(fā)中的Activity控件的基本概念,Activity控件的使用是安卓開發(fā)的基礎之一,需要的朋友可以參考下2015-12-12
Android加載大分辨率圖片到手機內(nèi)存中的實例方法
有些圖片的分辨率比較高,把它直接加載到手機內(nèi)存中之后,會導致堆內(nèi)存溢出的問題,下面就講解一下Android的堆內(nèi)存以及如何在Android應用中加載一個高分辨率的圖片的方法2013-11-11

