Android 7 0,6 0系統相機呼叫問題解決

2021-08-07 08:21:34 字數 1443 閱讀 1065

做專案用到android自帶相機的地方蠻多,也經常看到群裡有人在問。

所以決定把思路和**寫出來,以供自己以後參考。

第一步申請許可權

xml裡面也要申請許可權喲

6.0及以上都要申請危險許可權,我是在github上找的乙個依賴,挺好用的,只填寫需要的許可權就可以了。

第二步。呼叫系統相機

獲得路徑,6.0以上要用contentvalues傳路徑過去,如果我們不傳路徑也可以通過onactivityresult的data獲得,但是因為data的資料量太小,出來的都很模糊,就感覺像是擼多了。。。所以我們要傳乙個路徑過去,讓拍好的**儲存起來。

private string mfilepath;

public void starsystemphone(utilitybean utilitybean) else

} else tlog.error("沒有檔案");

// intent intent = new intent(mediastore.action_image_capture);

// startactivityforresult(intent, util.request_system_take);

}

第三步。獲得返回值。因為我們傳的是路徑,所以data是null。

就直接獲得檔案判斷是否為null,最好測試的時候轉成bitmap顯示出來。

呼叫7.0相機

前幾個步驟是一樣的,只是要新增以下東西。

因為7.0不能直接獲得路徑,所以我們需要找個東西代替一下。

我背上的發現會被壓縮,所以我這裡把**貼了出來,前面的name自定義,自己看得懂就好,後面填寫自己的包名。

name=

"my_images"

path=

"android/data/填寫自己的包名/" />

那我們現在建立了新的路徑,所以現在要去讓系統知道7.0要獲得的是這個路徑。

Android呼叫系統前置相機拍照

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

Android呼叫系統相簿和系統相機拍照

呼叫系統相機拍照 intent new intent mediastore.action image capture startactivityforresult intent,result camara image result camara image activity的標誌。自已定義 呼叫系統...

android相機拍照

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