我使用文件选取器指南在 maui blazor 应用中显示文件选取器(底部的参考代码)。
在窗户上,这有效。
在 android 上,文件选择器打开并显示,但我无法单击任何文件,因为它们都被禁用(灰色文本)并且不可单击。
我已经在MainApplication.cs
中添加了[assembly: UsesPermission(Android.Manifest.Permission.ReadExternalStorage)]
,并在AndroidManifest.xml
中添加了<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
.
将apk安装到我的设备或模拟器后,我授予了存储权限(因为我尚未实现对话框)。
如何使用 maui 应用程序在安卓设备上打开文件?
- Visual Studio 2022 (最新更新)
- .NET Core 6
<button @ref="button1" class="btn btn-primary" @onclick="OpenFileAsync">Open File</button>
@code {
public async void OpenFileAsync()
{
var customFileType = new FilePickerFileType(
new Dictionary<DevicePlatform, IEnumerable<string>>
{
{ DevicePlatform.iOS, new[] { "public.my.comic.extension" } }, // or general UTType values
{ DevicePlatform.Android, new[] { "application/comics" } },
{ DevicePlatform.WinUI, new[] { ".cbr", ".cbz" } },
{ DevicePlatform.Tizen, new[] { "*/*" } },
{ DevicePlatform.macOS, new[] { "cbr", "cbz" } }, // or general UTType values
});
PickOptions options = new()
{
PickerTitle = "Please select a comic file",
FileTypes = customFileType,
};
var result = await FilePicker.Default.PickAsync(options);
// ... process result
}
}
您可能希望根据您使用的平台检查接受的文件类型..例如在您的代码上:{ DevicePlatform.Android, new[] { "application/comics" }
接受的文件扩展类型是"应用程序/漫画"。 如果要启用图像,请更改/向列表中添加新类型。
{ DevicePlatform.Android, new[] { "application/comics","image/*" }