Android 調起相機拍照並儲存本地

2021-10-22 16:57:31 字數 1740 閱讀 1540

因為這個需要向系統相機傳送 content://uri,並授予 uri 臨時訪問許可權。而進行此授權的最簡單方式是使用 fileprovider類

許可權需要 sd卡讀寫和相機許可權 sd卡讀寫許可權需要動態獲取

android:name

="android.permission.camera"

/>

android:name

="android.permission.internet"

/>

android:name

="android.permission.read_external_storage"

/>

android:name

="android.permission.write_external_storage"

/>

android:name

="androidx.core.content.fileprovider"

android:authorities

="com.wang"

android:exported

="false"

android:granturipermissions

="true"

>

android:name

="android.support.file_provider_paths"

android:resource

="@xml/paths"

>

meta-data

>

provider

>

這裡可以看到 meta-data裡的 resource 的@xml/paths 需要建立,在res檔案下建立xml資料夾

這些做完之後就是去開啟相機進行拍照了

開啟相機進行拍照 (提前弄好乙個檔案名字來使用) 利用fileprovider.geturiforfile()來得到uri

private

funopencamera()

//根據時間建立出乙個檔案名字

private

funcreatename()

: string?

最後可以在onactivityresult裡拿到並設定到imageview上

override

funonactivityresult

(requestcode: int, resultcode: int,

data

: intent?)}

開啟相機的

camera ->}}

}

這樣就簡單的完成了拍照儲存本地並設定頭像

android相機拍照

拍照有兩種方式,一是使用android.hardware.camera,二是使用intent android.media.action.image capture 當然還是第一種好,不過 太複雜,以後有時間再說,這裡就說一下第二種方式吧。try catch exception e 這樣就可以呼叫系統...

Android 呼叫相機拍照並顯示,開啟相簿並顯示

設定拍照儲存路徑並將之轉換為uri 啟動相機,並傳遞該uri作為引數 在儲存路徑讀取 並顯示 private void takephoto outputimage.createnewfile catch ioexception e if build.version.sdk int 24 else 啟...

Android呼叫系統前置相機拍照

intent intent new intent mediastore.action image capture intent.putextra camerasensortype 2 呼叫前置攝像頭 測試,發現不正確,並不能直接開啟前置攝像頭,開啟的是上次使用的攝像頭。正確方法是 intent in...