问题描述
我为 Xamarin.Forms(Android、iOS 和 UWP)创建了一个示例。
最低版本:Android 9.0 API 28
目标版本:Android 10.0 API 29
我使用 nuget 包“Xamarin.Controls.SignaturePad.Forms”来创建 SignaturePad。这有效,但我在平板电脑(带有 Android 10.0 API 29 的平板电脑)的图库中看不到保存的图片 但图像在 com.sample\files\pictures 下。
从签名板获取图像
Stream signatureImage = await ((SignaturePad.Forms.SignaturePadView)pParameter).GetimagestreamAsync(SignaturePad.Forms.SignatureImageFormat.Png,Color.Black,Color.White);
if (signatureImage != null)
{
DependencyService.Get<IMediaService>().SavePicturetodisk("currentSignature3.png",((MemoryStream) signatureImage).ToArray());
}
Android 的 DpendencyService
public class MediaService : IMediaService
{
Context CurrentContext => CrossCurrentActivity.Current.Activity;
public void SavePicturetodisk(string pFileName,byte[] pImageData)
{
//"/storage/emulated/0/Android/data/com.sample/files/Pictures/currentSignature3.png"
var externalfilePath = CurrentContext.GetExternalFilesDir(Android.OS.Environment.DirectoryPictures).AbsolutePath;
var filePath = Path.Combine(externalfilePath,pFileName);
System.IO.File.WriteallBytes(filePath,pImageData);
if (File.Exists(filePath))
{
MediaScannerConnection.ScanFile(CurrentContext,new String[] { filePath },null,null);
Console.WriteLine("File exists");
}
else
{
Console.WriteLine("File error");
}
}
}
MediaScannerConnection.ScanFile 是否应该将图片添加到图库? 我添加了所有权限,因为文件已创建。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)