我有一個類ExportDialog,即extends AlertDialog
和implements ActivityCompat.OnRequestPermissionsResultCallback
。我正在通過調用onRequestPermissionsResult不會在AlertDialog類中調用
ActivityCompat.requestPermissions(getOwnerActivity(),
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
請求ExportDialog類中的許可權。此許可權也包含在清單中。
但是,調用ActivityCompat.requestPermissions
時,onRequestPermissionsResult不會以權限請求的結果被調用。
當在模擬器中進行測試,我可以看到正在執行的許可要求和我能夠啓用或成功地否認的許可要求。只是onRequestPermissionResult中的代碼永遠不會被調用。
我已經檢查了幾個像this職位,因爲我的類繼承AlertDialog反而不利於我的問題。
代碼片段請求權限:爲onRequestPermissionResult
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getOwnerActivity(),
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
return false;
}
代碼片段:類聲明的
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
exportCategory();
} else {
Toast.makeText(getContext(), "Export functionality can't be carried out.", Toast.LENGTH_LONG).show();
}
}
}
}
代碼段(CustomDialog擴展AlertDialog):
public class ExportDialog extends CustomDialog implements ActivityCompat.OnRequestPermissionsResultCallback { ... }
謝謝你提前幫助你!
onRequestPermissionsResult方法僅在「父(活性)」執行在那裏調用。 – sunita