c# - 安卓 XAMARIN : Camera intent is returning with null data in callback

标签 c# android android-intent xamarin.android xamarin

我正在尝试在我尝试使用 XAMARIN 和 C# 作为编程语言创建的独立于平台的移动应用程序中使用相机 Intent 。作为初学者,我发现了这个 link

在我的应用程序中使用类似的代码不起作用。具体来说,当控制转移到 onActivity 回调函数时,data 参数始终为 null。我的问题是为什么它为空?以及如何保存图像并将其用于我的应用程序?本教程中提到的示例应用程序本身就是完整的。我还尝试下载并运行示例应用程序,但没有成功。 :-(

我的目标 API 版本是 10。

下面是MENIFEST.XML文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.gotechark.dresspal">
    <uses-sdk android:minSdkVersion="10" />
    <application android:label="Dress Pal"></application>
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />

正如我们所看到的,相机 Intent 工作所需的所有权限都在此处提到。我在堆栈溢出和 xamarin 论坛上发现了许多其他问题,这些问题仅适用于基于 java 的 android 应用程序,或者大多没有回答或未解决。

最佳答案

在没有看到您的代码的情况下,我无法确定这是否对您有帮助,但请注意,在您链接到的示例中,它们从不使用从 Camera Activity 返回的数据参数。相反,在调用 Camera Activity 之前(在 TakeAPicture 函数中),它们会在 Intent 中传递一些额外的数据,告诉 Camera Activity 将图像存储在文件中:

intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(_file));

然后,当 Camera Activity 返回时,使用 _file 路径而不是 data 参数访问图像。

如果您调用 Camera Activity 而不调用 intent.PutExtra...,我相信您会发现 data 参数将填充相机图像不再为空,但请注意,它很可能是按比例缩小的图像。链接中使用的技术(指定文件)将指示 Camera Activity 将全尺寸图像保存在指定文件中。但这也只是一个猜测。

关于c# - 安卓 XAMARIN : Camera intent is returning with null data in callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097312/

相关文章:

java - 旋转屏幕后, View 寻呼机保留旧 fragment

Android:如何在首选项屏幕中删除边距/填充

android - 即使我使用不同的数据创建一些 Intent ,我也会从通知中获得相同的额外数据

android - 透明Activity独立开启

c# - 如何为 IIS 和 IIS Express 上的一个 Controller 操作设置请求超时

c# - 如何从字典中删除所有元素?

C# WPF - 窗口中的黑线

c# - 如何以编程方式将 Ext.Net.ColumnModel 添加到现有的 Ext.Net.GridPanel?

android - 网站未在 WebView 中加载

java - android 类之间传递大量数据