android - 无法让 Android 文档中的相机代码正常工作

标签 android bitmap android-camera

我正在使用来自 http://developer.android.com/training/camera/photobasics.html 的代码

代码:

    private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
            File photoFile = null;
            try {
                photoFile = FileUtilities.createImageFile();
            } catch (IOException ex) {
                // Error occurred while creating the File
                Toast.makeText(getActivity(),"Error!",Toast.LENGTH_SHORT).show();
            }
            if (photoFile != null) {
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                        Uri.fromFile(photoFile));
                startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
            }
        }
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
            Bundle extras = data.getExtras(); //error
            //code after this doesn't get executed
        }
    }

我正在尝试访问存储在设备上的缩略图和图片。但是由于某种原因,当我尝试代码时,我在 data.getExtras(); 上得到了一个空指针异常。部分。

我在这里错过了什么?

最佳答案

这是臭名昭著的 Android 开发经验之一。

Android Intent 不保证在 data.getExtras() 中提供捕获的图像,尤其是用户使用第 3 方相机/成像应用程序。您可以在here中找到许多尝试和建议。并在任何地方用“android camera intent null”进行谷歌搜索。

其中一些常见的如下。

  1. data.getExtras().get("数据");
  2. data.getExtras() 使用不同的键(即“照片”)
  3. data.getData()
  4. Uri.fromFile(f) 用于 EXTRA_OUTPUT 预定义路径。
  5. Uri.fromFile(f) 带有一些随机文件名(日期时间格式或 IMG-xxx)没有维护 EXTRA_OUTPUT 定义。

我建议您使用断点找到它,它是给定 Intent 的变量路径。最好在 if-else if-else 方法中检查所有这些。

此外,发布应用后请仔细检查崩溃报告。您可能会从上述试验中得到错误。

关于android - 无法让 Android 文档中的相机代码正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36394526/

相关文章:

java - 在位图中绘制九个面片

java - 在 android studio 中存储位图与使用 url 获取位图

android - SurfaceView 的裁剪相机预览

android - 使用 Android Camera API,快照照片的方向始终未定义

android - 错误捕获照片并显示缩略图android studio

android - 我在哪里可以找到 android 系统可绘制资源? [安卓API-7]

java - 如何在 Android 中将 TableRow 宽度设置为最大?

java - 使用 Gson 解析没有键的嵌套 JSON 对象

Android 全屏应用太暗

android - 位图可绘制( map 叠加项)在android中旋转后像素化