提问人:Dragon Slayer 提问时间:10/20/2023 更新时间:10/20/2023 访问量:49
Android.OS.FileUriExposed尝试在 MAUI Android 应用中打开文件时出现异常
Android.OS.FileUriExposedException when trying to open a file in MAUI Android app
问:
我正在开发一个 MAUI Android 应用程序,我需要在其中打开位于 Downloads 目录中的文件。我已经编写了代码来构造文件路径,并按照此处的 Microsoft 文档使用 Launcher.Default.OpenAsync 方法打开它。
#if ANDROID
string dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath;
#else
string dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
#endif
string folderName = rework.ServiceOrder.ServiceOrderNo;
string folderPath = Path.Combine(dir, folderName);
// Created directory and added files I can see the folder in the Files
var uri = new Uri(folderPath).AbsoluteUri;
await Launcher.Default.OpenAsync(uri);
但是,我收到以下异常:
Android.OS.FileUriExposedException: file:///storage/emulated/0/Download/TN1910013 在应用之外公开 通过 Intent.getData()
我已经尝试在AndroidManifest.xml文件中添加必要的意图过滤器,如文档中所述。这是我的清单文件的相关部分:
<activity android:name="maui_app" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" android:mimeType="*/*"/>
<data android:scheme="content" android:mimeType="*/*"/>
</intent-filter>
</activity>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
此代码在 Windows 上完美运行,并使用正确的目录打开文件资源管理器。但是,它不适用于我的 Android 本地设备。如何解决此问题并在我的 MAUI Android 应用程序中成功打开文件?
谢谢你的帮助!
答: 暂无答案
评论