首先,我是Xamarin的新手,但我已经非常喜欢它在平台之间最大化代码共享的概念。
我按照本教程在一个空白的新Xamarin Forms(2.3)项目中成功实现了摄像头访问。简单而伟大的例子btw。
但是我不喜欢我依赖Android中的Activity类来完成它的方式。
我正在尝试使用依赖关系服务(就像这样:https://developer.xamarin.com/guides/xamarin-forms/dependency-service/text-to-speech/)以更优雅的方式重构代码,但没有成功。
它不起作用,因为在Xamarin指南中没有必要在Android界面实现中有一个Activity。
主要问题是:
创建服务接口(ICamera)后,当我尝试实现ShouldTakePicture方法时(在Android Camera服务上)我需要一个Activity来调用它:StartActivityForResult(intent, 0);
还可以在OnActivityResult()
检索图像。有人可以在没有活动的情况下指出我这样做的方法(我只是在寻找一种方法来处理它而不依赖于活动)。
有办法实现吗?我的愿望是打电话给ICamera。 ShouldTakePicture()通过Xamarin.Forms在不同的地方,在Android Activitys上实现最少(或非)。
谢谢你们!
答案 0 :(得分:0)
我用Media Plugin拍照。在Nuget管理器中安装并在PCL中使用。
var file = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
Name = "IMG_1.jpg"
});