這個問題在這里已經有了答案: ActivityCompat.requestPermissions 未顯示對話框 (20 個回答) 1 小時前關閉。
我正在創建一個 MP3 播放器 android 應用程式。該應用程式需要讀取外部存盤設備才能播放 MP3 檔案。
我已經在 android 清單檔案中包含了此權限 (READ_EXTERNAL_STORAGE) 的 <uses-sdk ...> 標記。
我還嘗試在 onCreate 方法的開頭(在 setTitle 下方)鍵入以下代碼行(單獨)。 代碼片段 1 - 世界 - 記錄了 Hello 訊息
代碼片段 2 - Test-Hi 訊息被記錄 但是,應用程式不會要求用戶允許存盤訪問。我必須在設定中手動完成。我嘗試重置所有應用程式,但沒有用。其他需要存盤權限的應用程式在應用程式啟動時成功請求它。我不確定為什么這個應用程式不是這種情況。
幫助將不勝感激。
uj5u.com熱心網友回復:
您還需要在清單檔案中宣告權限,然后它會詢問。在清單檔案中這樣宣告
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
uj5u.com熱心網友回復:
你可以簡單地使用這個庫來做到這一點。它也非常小。
implementation 'com.karumi:dexter:6.2.3'將它添加到您的根級別 build.gradle。同步后,添加這些代碼行
Dexter.withContext(context) .withPermission(Manifest.permission.READ_EXTERNAL_SORAGE) .withListener(new PermissionListener() { @Override public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) { Toast.makeText(this, "granted", Toast.LENGTH_SHORT).show(); } @Override public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) { Toast.makeText(this, "denied", Toast.LENGTH_SHORT).show(); } @Override public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) { permissionToken.continuePermissionRequest(); } }).check();
多田!完成。
注意:如果你一次拒絕權限,你可能不會再次看到權限對話框,因為android會認為你一次又一次地請求權限給用戶帶來麻煩。這種情況下,用戶需要從設定中啟用權限。
希望它有幫助??。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/400708.html
上一篇:作業經理適合這些情況嗎?
