Android提供的攝像頭拍照
在微博,QQ,微信裡面分享自己的點點滴滴,可以從相簿傳相片,也可以開啟相機即使拍攝,這就要說到Android提供的攝像頭拍照
第一步,獲取許可權
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) { //如果沒有許可權,動態申請授權 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2); }
第二步,建立用於儲存的檔案,並且用intent呼叫系統攝像頭拍照程式
Button btTakePhoto = (Button) findViewById(R.id.btTakePhoto); btTakePhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { File sdcard = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); picFile = new File(sdcard, System.currentTimeMillis() + ".jpg"); picFile.createNewFile(); Log.e("UseSystemCameraApp", picFile.getName() + "建立成功"); } catch (IOException e) { e.printStackTrace(); } Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(picFile)); startActivityForResult(intent, 1); } }); }
第三步,把照片顯示出來
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { ImageView iv = (ImageView) findViewById(R.id.ivShow); iv.setImageURI(Uri.fromFile(picFile)); } super.onActivityResult(requestCode, resultCode, data); }
同樣也需要onRequestPermissionsResult
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 1) { if (!(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)) { Toast.makeText(this, "未獲得SD卡訪問許可權", Toast.LENGTH_LONG).show(); finish(); } } }
到這裡似乎就已經完成要做的步驟了,但其實還有最後一步,因為我們使用的是intent.putExtra,這會導致當前activity的URI會暴露給下一個activity,如果不處理,就會報錯。所以在onCreate中要使用StrictMode.VmPolicy.Builder進行監控
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); builder.detectFileUriExposure(); Button btTakePhoto = (Button) findViewById(R.id.btTakePhoto);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2680962/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android呼叫攝像頭拍照Android
- 照片系列之android呼叫攝像頭拍照Android
- Android呼叫攝像頭拍照並顯示照片Android
- 【Android】【opencv】實現攝像頭拍照和錄影AndroidOpenCV
- 安卓呼叫攝像頭拍照安卓
- UVC攝像頭按鍵拍照功能
- 在Android中呼叫攝像頭拍照並顯示出來Android
- android studio呼叫攝像頭拍照及具體步驟演示程式碼Android
- android opencv 前置攝像頭AndroidOpenCV
- android 開啟攝像頭Android
- [譯]Android的多攝像頭支援Android
- [譯] Android 的多攝像頭支援Android
- 瀏覽器呼叫攝像頭進行拍照程式瀏覽器
- 純JavaScript實現的呼叫裝置攝像頭並拍照的功能JavaScript
- iPhone XS/iPhone XS Max攝像頭拍照解析:蘋果也玩起了AI拍照iPhone蘋果AI
- web呼叫攝像頭拍照並上傳到伺服器Web伺服器
- Android中呼叫攝像頭拍照儲存,並在相簿中選擇圖片顯示Android
- Android CameraX 開啟攝像頭預覽Android
- Android 攝像頭預覽懸浮窗Android
- Android 圓形頭像 相簿和拍照裁剪選取Android
- python版opencv:如何用筆記本攝像頭拍照儲存PythonOpenCV筆記
- 簡單介紹C#獲取攝像頭拍照顯示影像的方法C#
- 如何在SAP UI5應用裡新增使用攝像頭拍照的功能UI
- AndroidCamera2拍照(三)——切換攝像頭,延時拍攝和閃光模式Android模式
- 【音影片】攝像頭
- 攝像頭操作指南
- RK3399的Android系統驅動UVC攝像頭Android
- html5中呼叫攝像頭拍照並上傳(附繞過https的想法)HTMLHTTP
- ToDesk勾上攝像頭會看到我嗎?如何關閉攝像頭
- Android使用者請注意,你的相機正在偷偷開啟並拍照攝像Android
- .NET 攝像頭採集
- 華為nova 4拍照怎麼樣?華為Nova4手機攝像頭拍照測試
- Win10攝像頭如何開啟_WIN10攝像頭在哪裡Win10
- 搭建一個攝像頭應用程式 應用程式內部攝像頭
- 大華攝像頭 ZLMediaKit JavaJava
- WebRTC開啟本地攝像頭Web
- 如何使用PYTHON操作攝像頭Python
- 某CCTV攝像頭漏洞分析