예제 #1
0
        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;
            }
        }
예제 #2
0
        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();
                }
            });
        }