android 照相机 解决有些获取的bundle为null的情况

来源:互联网 发布:c语言打印标准杨辉三角 编辑:程序博客网 时间:2024/05/19 05:02

在前面做照相机的时候,出现有些手机回调的时候  bundle 为null 的情况,下面的方法经过小米系统和摩托 自带的系统测试没有问题。

多的不说,直接上代码:


权限声明


 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


调用照相机

private String imageFilePath = null;


private void runCamera() {
imageFilePath = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ "/WordFoto2/"
+ (new Random().nextInt(10000)) + ".jpg";// 设置图片的保存路径
Log.e("runCamera", "imageFilePath" + imageFilePath);
File imageFile = new File(imageFilePath);// 通过路径创建保存文件
if (!imageFile.getParentFile().exists()) {
imageFile.getParentFile().mkdirs();
}
try {
imageFile.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Uri imageFileUri = Uri.fromFile(imageFile);// 获取文件的Uri
Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// 跳转到相机Activity
it.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);// 告诉相机拍摄完毕输出图片到指定的Uri
it.putExtra("return-data", true);
startActivityForResult(it, 1);
}


activity 的返回


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("onActivityResult", "requestCode" + requestCode);
if (resultCode == Activity.RESULT_OK) {
Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath);
((ImageView) findViewById(R.id.image_textview))
.setImageBitmap(bitmap);// 将图片显示在ImageView里
}
}


原创粉丝点击