protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == 10001 && _currentRequest != null) { if (resultCode == Result.Ok) { ContentResolver.TakePersistableUriPermission(data.Data, ActivityFlags.GrantWriteUriPermission); var documentFile = DocumentFile.FromTreeUri(this, data.Data); _currentRequest.AcceptRequest(documentFile); } else { _currentRequest.RejectRequest(); } _currentRequest = null; } }
public void OnStoragePermissionsRequested(StoragePermissionsHandler.StoragePermissionsDetail.Request request) { RunOnUiThread(() => { _currentRequest?.RejectRequest(); _currentRequest = request; var storageLocation = new File(request.StorageLocation); var storageManager = (StorageManager)GetSystemService(StorageService); var storageVolume = storageManager.GetStorageVolume(storageLocation); var intent = storageVolume?.CreateAccessIntent(null); if (intent != null) { StartActivityForResult(intent, 10001); } else { _currentRequest.RejectRequest(); } }); }