首页 > 解决方案 > 适用于 Android 的 xamarin 表单中的文件选择器问题

问题描述

我正在使用xamarin.plugin.FilePicker从 Android 的 xamarin 表单中的用户那里获取文件。但它不能正常工作。

当我在物理 Android 设备上进行测试并尝试获取任何文件(如 PDF、doc)时,它会使我的应用程序崩溃,或者有时它会将我重定向到我的应用程序主页。当我点击上传文件时,调试器停止,所以我无法在物理设备中调试问题。我在项目中添加了从存储读取、写入文件的必要权限。我不需要 iOS 应用程序,所以我不对其进行测试。

选择文件的代码:

FileData fileData = await CrossFilePicker.Current.PickFile();
            if (fileData == null)
                return; // user canceled file picking

            string fileName = fileData.FileName;
            FileInfo fi = new FileInfo(fileName);
            var ext = fi.Extension;
            string contents = System.Text.Encoding.UTF8.GetString(fileData.DataArray);
            var docBase64Path = Convert.ToBase64String(fileData.DataArray);
            int documentTypeId = 0;

Android 清单中的 Android 权限: 在此处输入图像描述

希望有更好的解决方案。

标签: .netxamarinxamarin.formsxamarin.androidxamarin.ios

解决方案


该包不再维护(repo 已存档),它已移至Microsoft 官方维护的 Xamarin.Essential 包FilePicker 。

看看那个repo github页面有一个迁移指南


推荐阅读