它適用于 .NET 6,但現在當我將 .net maui 專案遷移到 .net 7 時,問題開始出現:我將 MediaPicker 放置到專案的一個 xaml 頁面中,以便捕獲圖片并將其存盤在應用程式資料中目錄。我可以運行 Android 模擬器并獲得相機許可,但它停止了存盤作業。我洗掉并重新創建了 Android 模擬器設備,我嘗試了不同的 Android 版本,如 API 29、33,但沒有任何效果。我曾經在執行時自動彈出Android權限對話框視窗CapturePhotoAsync,現在它沒有,即使明確請求權限它仍然不顯示對話框視窗并立即重新Denied啟動
// got PermissionStatus.Denied, no dialog window requesting permission pops up
PermissionStatus status = await Permissions.RequestAsync<Permissions.StorageWrite>();
如果我忽略它并嘗試存盤圖片,它可以預見地引發例外Microsoft.Maui.ApplicationModel.PermissionException: 'StorageWrite permission was not granted: Denied'
任何人都可以建議可能出了什么問題,我可以嘗試解決什么問題
更新:創建分鐘。專案并上傳到github:github.com/YMichurin/mauiStoragePermissions
uj5u.com熱心網友回復:
我已經做了一個示例來測驗你的代碼。單擊按鈕后將顯示權限請求對話框。
您是否忘記將權限添加到 AndroidManifest.xml 中?如:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
此外,您可以使用 .net 7.0 創建一個新專案來測驗代碼。它在我的專案中運行良好。
更新
當我將您的專案克隆到 vs 時,出現了一些包錯誤。在我將以下代碼添加到 csproj.cs 后,專案成功運行。
<ItemGroup>
???<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0-rc.2.22430.11" />
???<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0-rc.2.22430.11" />
???<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0-rc.2.22430.11" />
???<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0-rc.2.22430.11" />
</ItemGroup>
結果:_

控制臺日志:

在我授予權限后,將顯示權限請求對話框并成功保存圖片。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530275.html
