【问题标题】:Android Lollipop ACTION_IMAGE_CAPTURE doesn't work as mentioned in DocsAndroid Lollipop ACTION_IMAGE_CAPTURE 不像文档中提到的那样工作
【发布时间】:2015-08-22 20:16:06
【问题描述】:

我的应用开始在 Lollipop 上崩溃,这让我开始了漫长的探索,试图找出原因并修复它。

我最终决定我应该按照谷歌在文档中所写的书来做这件事,这是踢球者,他们文档中的代码不起作用!

我从这里谈论代码:https://developer.android.com/training/camera/photobasics.html#TaskCaptureIntent

<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                 android:maxSdkVersion="18" />
</manifest>

google 提倡的这段代码可以防止相机意图在 Lollipop 上自行启动!

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(photoFile));

这段代码应该可以帮助我指定我希望图像所在的 uri,以便我可以获得完整大小的图像。这家伙把我从意图返回的数据变成了NULL。我讲这个数据:protected void onActivityResult(int requestCode, int resultCode, Intent data) {

我为愤怒道歉,但他们在文档中编写的代码不起作用,这不是很荒谬吗? (如果我做错了什么,请直接告诉我)

我知道的就这么多了。我想问的是,是否有人知道如何在 Lollipop 上调用 ACTION_IMAGE_CAPTURE 活动后获取完整图像。我需要完整图像而不仅仅是缩略图的原因是我需要将图像中的 EXIF 数据用于我的应用程序。 (全球定位系统数据) 如果您打开相机应用程序并拍摄它,EXIF 会自行添加,但如果我调用此活动,它不会直接保存图像,我必须从我获得的数据中保存它,而且我最多我从中得到的是使用此代码的缩略图:

Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");

【问题讨论】:

  • 那么你创建photoFile所在的目录在getExternalFilesDir()返回的目录下,但是摄像头好像无法写入文件?您可以在其中包含您创建photoFile 的行吗?

标签: android android-camera android-5.0-lollipop


【解决方案1】:

为什么uses权限里面有一个max sdk。

请更改后重试

<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                 android:maxSdkVersion="18" />
</manifest>

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

【讨论】:

  • 我做到了。它显然有效。我要咆哮的是为什么它在文档中。
  • 我不知道。去告诉谷歌。为什么会在这里发布?如果您已经知道解决方案?
  • 抱歉我的评论粗鲁。我真的很沮丧。我的问题的最后一部分仍然没有答案。这是:为什么我会丢失 EXIF 数据?它不是我要保存的图像的一部分。
猜你喜欢
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多