1. 程式人生 > >Android7.0安裝apk檔案之後不彈出安裝介面的問題

Android7.0安裝apk檔案之後不彈出安裝介面的問題

Android7.0以下的版本,別忘了加上:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

Android7.0以上的版本,還需要加上許可權:

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

完整的程式碼如下:

private void installApk() {
		File apkfile = new File(mSavePath, mFileName);
		if (!apkfile.exists()) {
			return;
		}
		Intent i = new Intent(Intent.ACTION_VIEW);
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		Uri uri=null;
		//判斷是否是Android 7.0以及更高的版本
		if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) {
			i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
			uri = FileProvider.getUriForFile(mContext,"你的包名.fileprovider",apkfile);
		}else{
			uri = Uri.fromFile(apkfile);
		}

		i.setDataAndType(uri,"application/vnd.android.package-archive");
		mContext.startActivity(i);
	}

如果報FileUriExposedException 異常(具體請百度),Android 7.0以上版本還需要在manifest.xml加上一個Provider

<provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="你的包名.fileprovider"
            android:grantUriPermissions="true"
            android:exported="false"
            >
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths"/>
        </provider>

對應的android:resource="@xml/file_paths"檔案需要新建:

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path name="external_storage_directory" path="." />
</paths>

加上“.”表示全部,具體請百度

相關推薦

Android7.0+安裝apk檔案之後安裝完成的介面解決辦法

在Android7.0+手上,版本升級完成,發現手機安裝完成,不啟動安裝完成頁面,而是直接關閉了,小編也是一頭霧水。琢磨了很久,下面小編把解決辦法show出來。 第一步:在資原始檔下面新建 xml資料夾,新建file_paths.xml檔案,程式碼如下: <?xml version="

Android7.0安裝apk檔案之後安裝介面的問題

Android7.0以下的版本,別忘了加上: intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   Android7.0以上的版本,還需要加上許可權: <uses-permission android:name="an

android實現撥打電話但撥號介面

這裡只提供一個大概的思路,整個流程不是我一個人就能完成的。測試機型為htc one x,Android版本4.2.2,已ROOT。 要實現撥號程式可能很簡單,一個簡單的Intent就能實現,從發出意圖到真正實現撥號的程式碼中間還執行了很多其他方法,這都是android底層原

android7.0 FileProvider配置安裝apk檔案的姿勢

7.0開發中Fileprovider在openFile中的使用,發現這篇部落格寫的已經很詳細了,轉載一下。 最近看到一個庫,覺得有點意思,就下載原始碼編譯了一下,結果發現打不開apk包,報錯為: //這個庫的地址是:https://github.com/bin

Android開發 android7.0安裝apk檔案的姿勢

最近看到一個庫,覺得有點意思,就下載原始碼編譯了一下,結果發現打不開apk包,報錯為: //這個庫的地址是:https://github.com/bingoogolapple/BGAUpdate-Android //設定了超連結也不變色,還

[Unity]Android(安卓)程式碼安卓APK時,使用系統安裝安裝的[最正確]辦法(選擇開啟的程式)

關於這個辦法的搜尋,又是隻能找到一篇被到處轉又沒卵用的文章,我時相當氣憤的。經過Google大法,最終找到正確的開啟方式 先來看看錯誤的開啟方式 String str = "/CanavaCancel.apk"; String fileName = Environ

安裝apk檔案資訊獲取

一、獲取APK圖示 通常讀取APK的圖示可以用,PackageManager裡面的getApplicationIcon(ApplicationInfo)來得到一個drawable。但實際使用的時候經常只能得到一個預設的圖示,根本不是APK的圖示。 參考小米開原始檔管理器,結合實踐,程式

windows快速安裝apk檔案

 1.首先在自己電腦中安裝了adb 2.手機開啟除錯模式並且連線電腦 3.把apk檔案直接拖到bat檔案中 ### 指令碼檔名為name.bat  字尾為bat ### 部分安卓手機需要在手機上點選同意安卓,還有的需要輸入密碼。。。 ::等待連線裝置 adb wai

什麼我的matlab7.0的M檔案儲存了,一點儲存就提示一大堆出錯資訊(顯示的資訊如下)

假如你安裝到D盤,那麼找到d:\matlab7\toolbox\ccslink\ccslink\info.xml 這個檔案,用寫字板開啟這個檔案 ,找到有一行這樣的<name>Link for Code Composer Studio?/name>,把這句的/name>改成</

【Android】獲取手機中已安裝apk檔案資訊(PackageInfo、ResolveInfo)(應用圖片、應用名、包名等)

眾所周知,通過PackageManager可以獲取手機端已安裝的apk檔案的資訊,具體程式碼如下 PackageManager packageManager = this.getPackageManager();  List<PackageInfo> pac

未註冊Microsoft.Jet.OLEDB.4.0提供程式或找到可安裝的ISAM的解決辦法

各種資料庫訪問引擎 ODBC:是一種底層的訪問技術,因此,ODBC API可以是客戶應用程式能從底層設定和控制資料庫,完成一些高階資料庫技術無法完成的功能;但不足之處由於ODBC只能用於關係型資料庫,使得利用ODBC很難訪問物件資料庫及其他非關係資料庫。 D

適配Android7.0應用間檔案共享FileProvider

android編譯版本升級到7.0以後,會出現很多適配方面的工作,從android官方文件對於android7.0行為變更可以瞭解到,android7.0的應用禁止傳遞類似file:// URI這樣的連結,否則應用會丟擲FileUriExposedException異常,比較典型的場景就是我

Python selenium —— 檔案下載,視窗,直接下載到指定路徑

今天談談檔案下載吧,很多人不會處理彈出的檔案下載框,其實跟上傳類似,可以用autoit和win32api解決,方法類似,可以看博主之前的文章 ,今天這裡博主主要想講講更漂亮的一種處理辦法,那就是指定下載路徑,不彈出彈框,直接下載到指定路徑。 今天主要分享Fi

ajax呼叫後臺實現檔案下載,下載提示框,無法下載

在做ajax呼叫後臺實現檔案下載時,出現了後臺返回前端正確資料,但前臺就是不提示下載框,且沒有下載檔案 $.ajax({ "url" : urlStr + 'exportFile', "method" : "POST", "data" : { "list

Android7.0系統的手機為什麼能使用紅包軟體搶紅包了?

首先,我們要知道Android7.0的出現標誌著Google又向新的領域邁出了一大步。但是對於我們開發者而言,又出現一批潛在的問題: 剛開發了微信搶紅包軟體,核心類直接Google下來的,立馬能用,自己再加上某些比較那啥的功能,生成自己中意的UI,手機上跑起來-----OK

svn:重新命名檔案之後,允許提交

1.錯誤程式碼 org.apache.subversion.javahl.ClientException: Illegal target for the requested operation s

Android之引用其它已安裝或未安裝apk檔案的資源

Android應用有時候會涉及到面板的更換問題,在這裡,我用一種引用其它已安裝或未安裝apk檔案的資源來說明。 其核心思想就是利用反射來獲取。 a、引用其它未安裝apk檔案的資源來說明        1、首先建立一個application(StyleClient),將其打

Mac 安裝apk 檔案 到 Android

1: 安裝 AndroidSDK, 裡面有個ADB 軟體2:mac 命令列輸入: :system_profiler SPUSBDataType 檢視自己Android 裝置的 Vendor ID: 0x2717: vi~/.android/adb_usb.ini開啟配置此Id

Android 獲取手機中已安裝apk檔案資訊(PackageInfo、ResolveInfo)

轉載自: http://www.open-open.com/lib/view/open1378262024781.html 眾所周知,通過PackageManager可以獲取手機端已安裝的apk檔案的資訊,具體程式碼如下 PackageManager packageMa

Android教程之如何安裝(解除安裝)apk檔案到模擬器

本文是從其他部落格轉載過來的! 主要是看在這裡對程式碼很好排版,所以準備搬到這裡來,這也是第一篇文章,來測試一下! ——————————首先安裝———————— 一:首先需要啟動模擬器 二:start -> 執行 ->CMD 三:進入andoridsdk下面的t