问题描述
- android调用系统拍照无返回值
-
我调用照相机拍照的代码是:cameraFile = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), DemoApplication.getInstance().getUserName() + System.currentTimeMillis() + ".jpg")); cameraFileString = cameraFile.getPath().toString(); Log.i("gather_uri", cameraFile.getPath()); intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, cameraFile); //intent.putExtra("return-data", true); cordova.startActivityForResult(this, intent, PICK_FROM_CAMERA);
返回回调代码是:
case PICK_FROM_CAMERA: //拍照后回调 Log.i("gather_img", "222" + cameraFile.getPath()); if(data != null){ Log.i("gather_img", "333" + cameraFile.getPath()); intent = new Intent(cordova.getActivity(), CropImageActivity.class); intent.putExtra("image", cameraFile.getPath()); intent.putExtra("status", photoStatus); cordova.startActivityForResult(this, intent, 600); } break;
在Nexus 5和Nexus 4的5.1.1的手机上测试没有任何问题,在小米的4.4的手机上测试是发现返回的数据data是空的,?有遇到或了解类似问题的朋友吗?
解决方案
1.
需要权限:
android:name="android.permission.CAMERA" />
有些机型可能还需要下面的权限(我测试的时候没有加小米平板16G拍照返回data为null):
android:name="android.hardware.camera" />android:name="android.hardware.camera.autofocus" />
2.拍......
答案就在这里:android调用系统拍照
----------------------
解决方案二:
File(Environment.getExternalStorageDirectory(), DemoApplication.getInstance().getUserName()看下/data/data目录下改文件夹是否创建成功,
如果失败了,是不会有返回值的
解决方案三:
File(Environment.getExternalStorageDirectory(), DemoApplication.getInstance().getUserName()看下/data/data目录下改文件夹是否创建成功,
如果失败了,是不会有返回值的
解决方案四:
可能文件系统不同,建议你去检查一下返回的data值,仔细找找吧,或者就直接保存到一个指定的位置
时间: 2024-08-22 15:17:10