我目前正在学习Xamarin.Forms的过程中。我正试图使用Plugin.Media.CrossMedia库实现相机功能。
以下是已经实施的内容:
public async Task<ImageSource> StartCamera()
{
await CrossMedia.Current.Initialize();
if (Plugin.Media.CrossMedia.Current.IsTakePhotoSupported && CrossMedia.Current.IsCameraAvailable)
{
var photo = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions() { SaveToAlbum=false, SaveMetaData=false});
if (photo != null)
return ImageSource.FromStream(() => { return photo.GetStream(); });
else
return null;
}
else
{
return null;
}
}
然而,当我执行“TakePhotoAsync”方法时,我收到了以下错误。
System.ArgumentException:无法获取文件位置。这很可能意味着您的Android清单文件中未设置文件提供程序信息。请查看有关如何在项目中设置此信息的文档。
我已经尝试查找解决方法,但没有成功。目前,我的AndroidManifest.xml文件如下所示。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="RCPTTracker.Android" android:versionCode="1" android:versionName="1.0">
<uses-sdk />
<application android:label="RCPTTracker.Android"></application>
</manifest>
我的感觉是我需要在这里声明一些内容,但是我找不到要声明什么,而且我跟随的所有教程都没有介绍如何设置文件提供程序。
有什么建议吗?
android:authorities="com.Igs.Mobile.TBOSS.fileprovider"
。这是你的意思吗?还是应该字面上为MY_PACKAGE_NAME.fileprovider
? - JonathanPeel