課程
/移動(dòng)開發(fā)
/Android
/Android攝像頭基礎(chǔ)
拍完照就閃退了,也沒有被保存
2017-07-21
源自:Android攝像頭基礎(chǔ) 2-3
正在回答
各位,我加了上面的代碼,結(jié)果第二個(gè)按鈕還是不能點(diǎn)開拍照
是這樣嗎,怎么不對(duì),能具體說一下第二個(gè)按鈕怎么修改嗎
weixin_慕仔8132962
如果已經(jīng)升級(jí)到android6.0以上會(huì)有個(gè)運(yùn)行時(shí)權(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、申請(qǐng)運(yùn)行時(shí)權(quán)限
將第二個(gè)按鈕的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); ????????????????} ????????????} ????????});
? ? ? ?主要進(jìn)行運(yùn)行時(shí)權(quán)限的申請(qǐng)工作,申請(qǐng)了ManiFest中申請(qǐng)的三個(gè)靜態(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ā)生未知錯(cuò)誤",Toast.LENGTH_SHORT).show(); ????????????finish(); ????????} ????} }
主要進(jìn)行申請(qǐng)權(quán)限時(shí)是否被同意的情況
最后
如果三個(gè)權(quán)限都同意了的話ImageView就能成功加載出圖片了。
祝你成功了。
精慕門3101338
android.permission.WRITE_EXTERNAL_STORAGE這個(gè)權(quán)限添加了嗎
舉報(bào)
帶你走進(jìn)Android攝像頭的秘密花園,探索Camera的奧秘
1 回答拍完照片點(diǎn)對(duì)號(hào)之后就閃退
1 回答系統(tǒng)相機(jī)拍照后,圖片保存不了
2 回答拍完照之后閃退
3 回答自定義相機(jī)拍照之后,照片的尺寸太小了,求解
3 回答相機(jī)拍照保存文件然后通過讀取文件加載圖片不顯示的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-12-29
各位,我加了上面的代碼,結(jié)果第二個(gè)按鈕還是不能點(diǎn)開拍照
2018-06-15
是這樣嗎,怎么不對(duì),能具體說一下第二個(gè)按鈕怎么修改嗎
2017-11-04
如果已經(jīng)升級(jí)到android6.0以上會(huì)有個(gè)運(yùn)行時(shí)權(quán)限,按老師這樣敲就sd卡中有圖片但是加載不出來。
解決方法:
1、由于拍照要用到CAMERA權(quán)限,所以現(xiàn)在Manifest文件中加上
2、申請(qǐng)運(yùn)行時(shí)權(quán)限
將第二個(gè)按鈕的click事件修改如下
? ? ? ?主要進(jìn)行運(yùn)行時(shí)權(quán)限的申請(qǐng)工作,申請(qǐng)了ManiFest中申請(qǐng)的三個(gè)靜態(tài)權(quán)限。
然后
在MainActivity中添加如下代碼
主要進(jìn)行申請(qǐng)權(quán)限時(shí)是否被同意的情況
最后
如果三個(gè)權(quán)限都同意了的話ImageView就能成功加載出圖片了。
祝你成功了。
2017-08-01
android.permission.WRITE_EXTERNAL_STORAGE這個(gè)權(quán)限添加了嗎