You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Essentials MediaPicker.CapturePhotoAsync在Android 13中失效如何解决?

解决Android 13下Xamarin.Essentials MediaPicker拍照权限报错问题

临时 workaround(无需等待官方更新)

  • 调整Manifest权限配置:在Android项目的AndroidManifest.xml里,给旧版存储权限加上android:maxSdkVersion="32",让Android 13及以上系统自动忽略这些权限,低版本仍能正常使用,同时保留CAMERA和READ_MEDIA_IMAGES权限:
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    
  • 手动跳过不必要的权限检查:在调用拍照方法前,仅针对Android 13以下版本检查存储写入权限,Android 13直接跳过:
    if (DeviceInfo.Version.Major < 13)
    {
        var writeStatus = await Permissions.CheckStatusAsync<Permissions.StorageWrite>();
        if (writeStatus != PermissionStatus.Granted)
        {
            writeStatus = await Permissions.RequestAsync<Permissions.StorageWrite>();
        }
    }
    var photo = await MediaPicker.CapturePhotoAsync();
    

官方修复方式

等待Xamarin.Essentials发布包含权限逻辑修复的正式版本(相关修复已提交PR,调整了Android 13下的权限校验逻辑,不再要求存储写入权限),更新到最新稳定版即可彻底解决该问题。

内容的提问来源于stack exchange,提问作者Aiko West

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:31:15