Android 7.0 更新APK在安裝時(shí)的報(bào)錯(cuò) android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.bjhl.education/files/xxx.apk exposed beyond app through Intent.getData()

1寨躁、在AndroidManifest.xml中添加如下代碼

<provider

? ? ? ? ? ? ? ?android:name="android.support.v4.content.FileProvider"

? ? ? ? ? ? ? ?android:authorities="app的包名.fileProvider"

? ? ? ? ? ? ? ?android:grantUriPermissions="true"

? ? ? ? ? ? ? ?android:exported="false">

? ? ? ? ? ? ? <meta-data

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? android:name="android.support.FILE_PROVIDER_PATHS"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? android:resource="@xml/file_paths"/>

</provider>


注意:

authorities:app的包名.fileProvider

grantUriPermissions:必須是true镐牺,表示授予 URI 臨時(shí)訪問(wèn)權(quán)限

exported:必須是false

resource:中的@xml/file_paths是我們接下來(lái)要添加的文件

2、在res目錄下新建一個(gè)xml文件夾像寒,并且新建一個(gè)file_paths的xml文件(如下圖)


3料扰、打開(kāi)file_paths.xml文件添加如下內(nèi)容

<?xml version="1.0" encoding="utf-8"?>

<paths>

? ? ? ? ? ? ?<external-path path="Android/data/app的包名/" name="files_root"/>

? ? ? ? ? ? ?<external-path path="." name="external_storage_root"/>

</paths>

path:需要臨時(shí)授權(quán)訪問(wèn)的路徑(.代表所有路徑)

name:就是你給這個(gè)訪問(wèn)路徑起個(gè)名字

4、修改代碼適配Android N

Intentintent =newIntent(Intent.ACTION_VIEW);

//判斷是否是AndroidN以及更高的版本

if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) {

? ? ? ? ? ? ?Uri contentUri = FileProvider.getUriForFile(context,"com.bjhl.education.fileProvider",file);

? ? ? ? ? ? ?intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

? ? ? ? ? ? ?intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

? ? ? ? ? ? ?intent.setDataAndType(contentUri,"application/vnd.android.package-archive");

}else{

? ? ? ? ? ? ?intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

? ? ? ? ? ? ?intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");

}

context.startActivity(intent);

1龟梦、首先我們對(duì)Android N及以上做判斷;

2窃躲、然后添加flags计贰,表明我們要被授予什么樣的臨時(shí)權(quán)限

3、以前我們直接Uri.fromFile(apkFile)構(gòu)建出一個(gè)Uri,現(xiàn)在我們使用FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileProvider", apkFile);

4蒂窒、BuildConfig.APPLICATION_ID直接是應(yīng)用的包名

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躁倒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子洒琢,更是在濱河造成了極大的恐慌秧秉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衰抑,死亡現(xiàn)場(chǎng)離奇詭異象迎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)呛踊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)砾淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谭网,你說(shuō)我怎么就攤上這事汪厨。” “怎么了愉择?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵劫乱,是天一觀的道長(zhǎng)织中。 經(jīng)常有香客問(wèn)我,道長(zhǎng)衷戈,這世上最難降的妖魔是什么抠璃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮脱惰,結(jié)果婚禮上搏嗡,老公的妹妹穿的比我還像新娘。我一直安慰自己拉一,他們只是感情好采盒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蔚润,像睡著了一般磅氨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫡纠,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天烦租,我揣著相機(jī)與錄音,去河邊找鬼除盏。 笑死叉橱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的者蠕。 我是一名探鬼主播窃祝,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼踱侣!你這毒婦竟也來(lái)了粪小?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抡句,失蹤者是張志新(化名)和其女友劉穎探膊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體待榔,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逞壁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了究抓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猾担。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖刺下,靈堂內(nèi)的尸體忽然破棺而出绑嘹,到底是詐尸還是另有隱情,我是刑警寧澤橘茉,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布工腋,位于F島的核電站姨丈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏擅腰。R本人自食惡果不足惜蟋恬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趁冈。 院中可真熱鬧歼争,春花似錦、人聲如沸渗勘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)旺坠。三九已至乔遮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間取刃,已是汗流浹背蹋肮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璧疗,地道東北人坯辩。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像病毡,于是被迫代替她去往敵國(guó)和親濒翻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android N系列適配---FileProvider Android 7.0的適配啦膜,主要包含方面: Andro...
    25a58172fbb5閱讀 7,079評(píng)論 3 32
  • 只簡(jiǎn)述我發(fā)現(xiàn)問(wèn)題的根源,有些是適配了7.0淌喻,會(huì)報(bào)權(quán)限失敗問(wèn)題僧家,那是由于沒(méi)有動(dòng)態(tài)授權(quán)導(dǎo)致,接下來(lái)我一步一步給大家實(shí)現(xiàn)...
    Wocus閱讀 2,354評(píng)論 4 5
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,770評(píng)論 25 707
  • Android7.0發(fā)布已經(jīng)有一個(gè)多月了裸删,Android7.0在給用戶帶來(lái)一些新的特性的同時(shí)八拱,也給開(kāi)發(fā)者帶來(lái)了新的...
    東經(jīng)315度閱讀 1,346評(píng)論 0 14
  • 今天在手繪群里,給一個(gè)小伙伴分享了測(cè)量法涯塔,所以也想把這個(gè)簡(jiǎn)單的素描小知識(shí)分享給更多的小伙伴肌稻。 學(xué)過(guò)素描的肯定都知道...
    李文茵閱讀 1,526評(píng)論 7 17