1. 程式人生 > >Android 7.0系統呼叫相機崩潰

Android 7.0系統呼叫相機崩潰

按照原來程式碼,6.0以上申請許可權,有了許可權呼叫相機流程在今天測試的同事給我打破了。

同事拿著個7.0的手機來我旁邊,一點拍照就崩潰了。當時有點摸不到頭腦。

檢視log,丟擲了FileUriExposedException異常。

查了半天(半年沒寫android專案了,一直在做Xamarin.iOS的開發),原來7.0之後你的app就算有許可權,給出一個URI之後手機也認為你沒有許可權。

直接貼出最簡單的,不用修改以前我們程式碼的:

在Application的oncreate方法中:

// 置入一個不設防的VmPolicy(不設定的話 7.0以上一呼叫拍照功能就崩潰了)
        // 還有一種方式:manifest中加入provider然後修改intent程式碼
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
        }

快速解決,但是後期還是修改成下面FileProvider的方式。

正常的FileProvider配置方式,參考文獻:

相關推薦

Android 7.0系統呼叫相機崩潰

按照原來程式碼,6.0以上申請許可權,有了許可權呼叫相機流程在今天測試的同事給我打破了。 同事拿著個7.0的手機來我旁邊,一點拍照就崩潰了。當時有點摸不到頭腦。 檢視log,丟擲了FileUriExposedException異常。 查了半天(半年沒寫android專案了,

Android FrameWork學習(一)Android 7.0系統原始碼下載\編譯

最近計劃著研究下Android 7.0的系統原始碼,之前也沒做過什麼記錄,這次正好將學習的內容記錄下來,方便以後複習鞏固。 既然要學習我們的系統原始碼,那我們第一步要做的就是下載原始碼並進行編譯了。 硬體環境要求 1. 編譯環境 按照官方的說

Android 7.0系統啟動流程分析

隨著Android版本的升級,aosp專案中的程式碼也有了些變化,本文基於Android 7.0分析Android系統啟動流程.當我們按下電源鍵後,整個Android裝置大體經過了一下過程: 今天我們只想來分析init程序及其後的過程,也就是下圖所示部分:

關於Android 7.0系統通知聲音不能播放

由於沉迷於擼(nong)碼(yao),很久沒有更新過部落格了,甚是慚愧.公司的專案比較高大上,主要面對老外開發,所以要適配各種版本的Android機,專案裡有個鬧鐘提醒患者吃藥的功能,但是這個功能獲取系統通知鈴聲在Android 6.0以下好好的,換了個7.0的手機卻不能播放出聲音了.A

Android 7.0系統原始碼中如何編譯android studio工程

eclipse工程放在系統原始碼裡編譯,直接把整個包丟到系統裡,然後加一個Android.mk,就完事了,可是eclipse被谷歌拋棄很久了,現在琢磨者如何將android studio工程放到系統原始碼裡編譯,在網上找了一大圈 都沒有找到,只好自己幹了了。 android

Android開發之深入理解Android 7.0系統許可權更改相關文件

摘要: Android 6.0之後的版本增加了執行時許可權,應用程式在執行每個需要系統許可權的功能時,需要新增許可權請求程式碼(預設許可權禁止),否則應用程式無法響應;Android 7.0在Android 6.0的基礎上,對系統許可權進一步更改,這次的許可權更改包括三個方

Android 7.0系統原始碼下新增共享庫

     今天的任務從早上搞到現在,才算完成,本來以為比較簡單,就是出一個Demo,將實際業務的邏輯封裝成so庫,放在系統層,對上層不暴露任何東西,中間就一層JNI呼叫,原本以為很簡單,但是由於自己的一個壞習慣,折騰了一天。將處理過程詳細記錄下來,同時吸取教訓,也希望能給大家

Android-7.0系統安裝異常之解析包錯誤

關於這個毛茸茸的小錯誤 最新在開發一個新的 APP ,自己手動寫了版本更新,測試發現,覆蓋安裝的時候,在 Android 7.0 系統上出現解析包錯誤。 報錯資訊: 核心報錯資訊: java.lang.SecurityException: P

Android 7.0呼叫系統相機(檔案訪問crash android.os.FileUriExposedException)

最近專案中做圖片上傳的功能中遇到一個問題,就是7.0的手機上呼叫系統相機指定圖片路徑的情況下回crash,報錯android.os.FileUriExposedException uri暴露的錯誤。 Android7.0對應用共享檔案這塊做了一些強制性的要求。

呼叫系統相機拍照--是配到android-7.0

一:獲取縮放圖 直接呼叫相機拍照,無需人和許可權,但是缺點是隻能獲取到縮放圖(不清晰的哦,一般不採用這種) /** * 縮放圖 */ mThumbnail.setOnClickListene

呼叫Android系統自帶相機拍照,從相簿中獲取圖片(相容7.0系統

一,前言: 在日常的手機應用開發過程中,經常會遇到上傳圖片的需求,像上傳頭像之類的,這就需要呼叫系統的相機,相簿獲取照片。但是在Android 系統7.0之後認為這種操作是不安全的,這篇文章主要就是記錄7.0獲取照片遇到的問題。 二,FileProvider介紹 都

Android 7.0呼叫系統相機適配筆記

對於Android N以下,檔案直接Uri.fromFile(file)就可以直接使用,Audroid N 即編譯app的版本 compileSdkVersion 24時,此時會報出FileUriExposedException異常,解釋如下: 對於面向 Android

android 7.0以上共享檔案(解決呼叫系統照相和圖片剪切出現的FileUriExposedException崩潰問題)

    在android7.0開始試共享“file://”URI 將會導致引發 FileUriExposedException。 如果應用需要與其他應用共享私有檔案,則應該使用 FileProvider, FileProvider的 getUriForFile() 方法可以

安卓 7.0之後 呼叫系統相機崩潰

解決方案: 1、(推薦)7.0之後你的app就算有許可權,給出一個URI之後手機也認為你沒有許可權。不用修改原有程式碼,在Application的oncreate方法中: if (Build.VER

解決Android 7.0, 8.0手機相機崩潰問題

在android 7.0之後的手機上用以上程式碼開啟相機、相簿會報如下錯誤: android.os.FileUriExposedException: ** exposed beyond app through Intent.getData()  解決方法: 

Android 7.0 呼叫相機 android.os.FileUriExposedException

import android.R.integer; import android.app.Activity; import android.app.Dialog; import android.content.ContentValues; import android.c

Android 7.0及以上系統訪問相機問題詳解

本章節講述Android 7.0及以上獲取相機問題 1.清單檔案 2.專案配置 3.程式碼 /** * Android 6.0系統及以上申請敏感許可權方法 * */ private void reque

android 7.0呼叫相機許可權

Android 7.0之後呼叫相機的方式不允許以file://的方式呼叫,需要以共享檔案的方式content://url ContentValues contentValues = new ContentValues(1); contentValues.put(Medi

Android 7.0呼叫相機拍照 報錯 FileUriExposedException

摘自郭霖 《第一行程式碼》 從Android 7.0系統開始,直接使用本地真實路徑的Uri,被認為是不安全的,會丟擲一個FileUriExposedException異常,,而FileProvider則是一種特殊的內容提供器,它使用了和內容提供器類似的機制來對

解決Android7.0系統 呼叫系統相機系統播放器播放視訊、切圖相容問題,報異常android.os.FileUriExposedException

Android7.0以前獲取本地檔案uri用的Uri.fromFile(new File(filePath)); 後會得到一個file://,這種方式呢7.0及以後的系統版本就用不了,且會報一個異常: