Android 7.0 適配 android.os.FileUriExposedException: file://***** exposed beyond app through Intent.getData() 的解決方法

如果你的安卓程序的targetSdkVersion是24以上众羡,也就是7.0慈参。你需要使用FileProvider向其他應(yīng)用提供文件暴匠,而不是隨便地利用文件地址就可以蔚携。也就是說你需要使用 content:// 來代替file://精耐。接下來提供步驟:

  • 你最好提供自己的FileProvider擴(kuò)展狼速,而不是直接使用android.support.v4.content.FileProvider,以防止與其他app和庫沖突卦停。
public class MyFileProvider extends FileProvider {
}
  • 接下來向胡,在AndroidManifest.xml中,添加一個(gè)provider標(biāo)簽
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <application
        ...
        <provider
            android:name=".MyFileProvider"
            android:authorities="${applicationId}.my.package.name.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>
    </application>
</manifest>
  • 你應(yīng)該注意到惊完,其中有一個(gè)xml資源僵芹,沒錯(cuò),你需要定義一個(gè)xml文件來說明你需要提供的文件路徑
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

在這個(gè)例子中专执,我們指出需要獲取外部儲(chǔ)存的根路徑淮捆,用.表示。

  • 最后本股,你就可以獲取文件Uri了攀痊,注意,你需要FLAG_GRANT_READ_URI_PERMISSION權(quán)限來完成這個(gè)工作拄显。比如在intent中苟径,獲取uri地址來安裝apk:
Intent intent= new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri contentUri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".fileProvider", apkfile);
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
startActivity(intent);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市躬审,隨后出現(xiàn)的幾起案子棘街,更是在濱河造成了極大的恐慌蟆盐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遭殉,死亡現(xiàn)場離奇詭異石挂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)险污,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門痹愚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛔糯,你說我怎么就攤上這事拯腮。” “怎么了蚁飒?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵动壤,是天一觀的道長。 經(jīng)常有香客問我淮逻,道長琼懊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任弦蹂,我火速辦了婚禮肩碟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘凸椿。我一直安慰自己削祈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布脑漫。 她就那樣靜靜地躺著髓抑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪优幸。 梳的紋絲不亂的頭發(fā)上吨拍,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音网杆,去河邊找鬼羹饰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碳却,可吹牛的內(nèi)容都是我干的队秩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼昼浦,長吁一口氣:“原來是場噩夢啊……” “哼馍资!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起关噪,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤鸟蟹,失蹤者是張志新(化名)和其女友劉穎乌妙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體建钥,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藤韵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锦针。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荠察。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡置蜀,死狀恐怖奈搜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盯荤,我是刑警寧澤馋吗,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站秋秤,受9級(jí)特大地震影響宏粤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灼卢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一绍哎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞋真,春花似錦崇堰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檩互,卻和暖如春特幔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闸昨。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工蚯斯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饵较。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓拍嵌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親告抄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撰茎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 上周,寫了個(gè)小demo打洼,正好同事使用的小米手機(jī)系統(tǒng)內(nèi)核更新到7.0龄糊,遂拿來測試了一番逆粹。其中遇到的小問題,現(xiàn)在來跟大...
    monkey_who閱讀 4,621評(píng)論 0 13
  • 由于 Android 7.0 或更高版本的系統(tǒng)在國內(nèi)手機(jī)市場上的占比不是很高炫惩,很多 Android 開發(fā)人員并沒有...
    亦楓閱讀 4,118評(píng)論 1 39
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理僻弹,服務(wù)發(fā)現(xiàn),斷路器他嚷,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 時(shí)間就是窗外山坡上的那只羊蹋绽。它低頭吃草,時(shí)間就開始流動(dòng)筋蓖;它抬頭看天卸耘,時(shí)間于是靜止。 但那是在紅城大禮堂之外粘咖。在紅城...
    南呂先生閱讀 263評(píng)論 3 9
  • 人生如初見 故事的主人公是一位初 姓的女子蚣抗!大齡女青年 ,實(shí)屬瓮下,因?yàn)槟攴既之?dāng)頭 翰铡!在2016年11月11日的第二...
    小凡平凡的凡閱讀 214評(píng)論 0 1