【发布时间】:2017-02-12 18:40:51
【问题描述】:
我正在使用 James Montemagno 的媒体插件来拍照。
出于某种原因,并且仅在我的手机上运行该应用程序时,拍照时,TestFolder 中的缩略图确实正确显示,但它们显示为空文件。
在模拟器中运行时图像正确显示。
这是我的代码:
public async Task<MediaFile> TakePhoto() {
MediaFile result = null;
await CrossMedia.Current.Initialize();
if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported) {
// Supply media options for saving our photo after it's taken.
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions {
SaveToAlbum = true,
Directory = "TestFolder",
Name="test.jpg"
};
// Take a photo of the business receipt.
result = await CrossMedia.Current.TakePhotoAsync(mediaOptions);
}
return result;
}
编辑 1:
简而言之,由于某种原因,Media 插件无法在我的手机(华为 P8 Lite)上运行。我已经在 GitHub 上尝试过示例:(使用)
https://github.com/jamesmontemagno/MediaPlugin
照片会显示在模拟器中,但不会显示在手机上(相机会打开并拍照)。如上所述,如果我访问相册文件夹,则会出现空缩略图。
编辑 2
这是安卓清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="15" />
<application android:label="MediaPluginTests.Droid"></application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
</manifest>
我还添加了:
var cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);
var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
if (cameraStatus != PermissionStatus.Granted || storageStatus != PermissionStatus.Granted) {
var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera, Permission.Storage });
cameraStatus = results[Permission.Camera];
storageStatus = results[Permission.Storage];
}
两个权限都按授予的状态返回。
编辑 3
我在三星 Galaxy A3 上试用过,效果很好,在相机胶卷和应用程序中都能正确显示。
但这就是我的华为 P8 手机相册中图像的显示方式:
编辑 4
我在不同的华为 P8 设备上进行了尝试,但遇到了同样的问题。
【问题讨论】:
-
iOS 和 Android 都出现错误?
-
我只能在 Android 上测试它。
-
您是否添加了清单权限?
-
@Mike 我降级到 2.3.0 但还是不行,缩略图显示为空,并且应用程序中没有显示图像。
-
你能在这里发布 logcat 输出吗?华为 P8 和其他一些来自华为的类似机型对程序员来说似乎有些问题。如果您在 logcat 上没有看到任何特定于您的应用程序的内容,请拨打
*#*#2846579#*#*并转到项目菜单 - 后台设置 - 日志设置并启用日志并指定日志记录级别。这是华为特有的,可能不适用于您的型号,但值得一试。
标签: android xamarin xamarin.android xamarin.forms media