Android(安卓)调用系统相机 失败
16lz
2022-03-06
最近花了几个小时淌了这个坑,记录下了
Android 调用系统相机
这里我就不详细介绍了直接贴代码:
在拍照按钮的回调中加入如下代码:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);Uri imgUri = createImgUri();//Uri imgUri = Uri.parse("file:///" + Environment.getExternalStorageDirectory().getPath() + "/VEGE/temp.jpg");takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);startActivityForResult(takePictureIntent, 1);
其中 createImgUri 函数是由一个文件路径生成一个 Uri ,具体 uri 例子在下面注释中给出。在当前 Activity 中实现下面函数:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode,resultCode,data); if (ACTIVITY_CAMERA_FULL_CODE == requestCode){ if (RESULT_OK == resultCode){ //其中照片会被存储到 上面 Uri 所对应的文件中 } } }
参考网址:http://www.runoob.com/w3cnote/android-tutorial-camera.html
http://www.runoob.com/w3cnote/android-tutorial-activity.html
坑1:必须给到相机权限:
AndroidManifest.xml 中加入
,最坑的是 还要求动态申请权限,这个网上有很多例子。
坑2:上文中 Uri 所对应的文件,如果其所在的文件夹不存在的话,是无法保存文件的,关键是不报错,需要自己手动 makedirs 一下。
更多相关文章
- 关于Android(安卓)studio混淆遇到的问题
- android相机调试
- Android(安卓)Sqlite Failed to open database(无法打开数据库文
- android Bitmap
- SharedPreferences之Android数据保存
- Android(安卓)对话框【Dialog】去除白色边框代码
- Android亮灭屏功能实现
- Android第五个功能:文件存储到SDCard上面
- NPM 和webpack 的基础使用