課程
/移動開發(fā)
/Android
/Android攝像頭基礎
拍完照就閃退了,也沒有被保存
2017-07-21
源自:Android攝像頭基礎 2-3
正在回答
各位,我加了上面的代碼,結(jié)果第二個按鈕還是不能點開拍照
是這樣嗎,怎么不對,能具體說一下第二個按鈕怎么修改嗎
weixin_慕仔8132962
如果已經(jīng)升級到android6.0以上會有個運行時權(quán)限,按老師這樣敲就sd卡中有圖片但是加載不出來。
解決方法:
1、由于拍照要用到CAMERA權(quán)限,所以現(xiàn)在Manifest文件中加上
<uses-permission?android:name="android.permission.CAMERA"/> <uses-permission?android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission?android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2、申請運行時權(quán)限
將第二個按鈕的click事件修改如下
?btnStartCamera2.setOnClickListener(new?View.OnClickListener()?{ ????????????@Override ????????????public?void?onClick(View?v)?{ ????????????????List<String>?permissionList?=?new?ArrayList<String>(); ????????????????if(ContextCompat.checkSelfPermission(MainActivity.this,?Manifest.permission.READ_EXTERNAL_STORAGE)?!=?PackageManager.PERMISSION_GRANTED)?{ ????????????????????permissionList.add(Manifest.permission.READ_EXTERNAL_STORAGE); ????????????????} ????????????????if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)?!=?PackageManager.PERMISSION_GRANTED)?{ ????????????????????permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); ????????????????} ????????????????if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CAMERA)?!=?PackageManager.PERMISSION_GRANTED)?{ ????????????????????permissionList.add(Manifest.permission.CAMERA); ????????????????} ????????????????if(!permissionList.isEmpty())?{ ????????????????????String[]?permissions?=?permissionList.toArray(new?String[permissionList.size()]); ????????????????????ActivityCompat.requestPermissions(MainActivity.this,permissions,1); ????????????????}?else?{ ????????????????????Intent?intent?=?new?Intent(MediaStore.ACTION_IMAGE_CAPTURE); ????????????????????Uri?photoUri?=?Uri.fromFile(new?File(mFilePath)); ????????????????????intent.putExtra(MediaStore.EXTRA_OUTPUT,photoUri); ????????????????????startActivityForResult(intent,REQUEST2); ????????????????} ????????????} ????????});
? ? ? ?主要進行運行時權(quán)限的申請工作,申請了ManiFest中申請的三個靜態(tài)權(quán)限。
然后
在MainActivity中添加如下代碼
@Override public?void?onRequestPermissionsResult(int?requestCode,?@NonNull?String[]?permissions,?@NonNull?int[]?grantResults)?{ ????super.onRequestPermissionsResult(requestCode,?permissions,?grantResults); ????if(requestCode?==?1)?{ ????????if(grantResults.length?>?0)?{ ????????????for(int?result?:?grantResults)?{ ????????????????if(result?!=?PackageManager.PERMISSION_GRANTED)?{ ????????????????????Toast.makeText(MainActivity.this,"必須同意所有權(quán)限才能使用本程序",Toast.LENGTH_SHORT).show(); ????????????????????finish(); ????????????????????return; ????????????????} ????????????} ????????????Intent?intent?=?new?Intent(MediaStore.ACTION_IMAGE_CAPTURE); ????????????Uri?photoUri?=?Uri.fromFile(new?File(mFilePath)); ????????????intent.putExtra(MediaStore.EXTRA_OUTPUT,photoUri); ????????????startActivityForResult(intent,REQUEST2); ????????}?else?{ ????????????Toast.makeText(MainActivity.this,"發(fā)生未知錯誤",Toast.LENGTH_SHORT).show(); ????????????finish(); ????????} ????} }
主要進行申請權(quán)限時是否被同意的情況
最后
如果三個權(quán)限都同意了的話ImageView就能成功加載出圖片了。
祝你成功了。
精慕門3101338
android.permission.WRITE_EXTERNAL_STORAGE這個權(quán)限添加了嗎
舉報
帶你走進Android攝像頭的秘密花園,探索Camera的奧秘
1 回答拍完照片點對號之后就閃退
1 回答系統(tǒng)相機拍照后,圖片保存不了
2 回答拍完照之后閃退
3 回答自定義相機拍照之后,照片的尺寸太小了,求解
3 回答相機拍照保存文件然后通過讀取文件加載圖片不顯示的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-12-29
各位,我加了上面的代碼,結(jié)果第二個按鈕還是不能點開拍照
2018-06-15
是這樣嗎,怎么不對,能具體說一下第二個按鈕怎么修改嗎
2017-11-04
如果已經(jīng)升級到android6.0以上會有個運行時權(quán)限,按老師這樣敲就sd卡中有圖片但是加載不出來。
解決方法:
1、由于拍照要用到CAMERA權(quán)限,所以現(xiàn)在Manifest文件中加上
2、申請運行時權(quán)限
將第二個按鈕的click事件修改如下
? ? ? ?主要進行運行時權(quán)限的申請工作,申請了ManiFest中申請的三個靜態(tài)權(quán)限。
然后
在MainActivity中添加如下代碼
主要進行申請權(quán)限時是否被同意的情況
最后
如果三個權(quán)限都同意了的話ImageView就能成功加載出圖片了。
祝你成功了。
2017-08-01
android.permission.WRITE_EXTERNAL_STORAGE這個權(quán)限添加了嗎