Android XAMARIN:Camera intent在回调中返回null数据

时间:2014-01-13 17:14:50

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

我正在尝试在我的平台独立移动应用程序中使用相机意图,我试图使用XAMARIN创建C#作为编程语言。作为首发,我发现了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" />

我们可以看到所有必要的摄像头意图工作权限都在这里提到。我在堆栈溢出和xamarin论坛上发现了很多其他问题,在同样的方面,这对于基于java的Android应用程序都是好的,或者大部分没有回答或未解决。

1 个答案:

答案 0 :(得分:6)

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

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

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

如果您在没有调用 intent.PutExtra ... 的情况下调用相机活动,我相信您会发现数据参数将填入相机图像不再为空,但请注意,它很可能是缩小的图像。链接中使用的技术(指定文件)将指示Camera活动将完整大小的图像保存在指定的文件中。但这又是一个猜测。