public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess) { //check if we need to request the external-storage-permission at runtime if (ioc.IsLocalFile()) { bool requiresPermission = !(ioc.Path.StartsWith(activity.Activity.FilesDir.CanonicalPath) || ioc.Path.StartsWith(IoUtil.GetInternalDirectory(activity.Activity).CanonicalPath) || ioc.Path.StartsWith(IoUtil.GetInternalDirectory(activity.Activity).CanonicalPath)); var extDirectory = activity.Activity.GetExternalFilesDir(null); if ((extDirectory != null) && (ioc.Path.StartsWith(extDirectory.CanonicalPath))) { requiresPermission = false; } if (requiresPermission && (Build.VERSION.SdkInt >= BuildVersionCodes.M)) { if ((activity.Activity.CheckSelfPermission(Manifest.Permission.WriteExternalStorage) == Permission.Denied) || (activity.Activity.CheckSelfPermission(Manifest.Permission.ReadExternalStorage) == Permission.Denied)) { activity.StartFileUsageProcess(ioc, requestCode, alwaysReturnSuccess); return; } } } Intent intent = new Intent(); activity.IocToIntent(intent, ioc); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileUsagePrepared, intent); }
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess) { if (IsConnected(ioc.Path)) { Intent intent = new Intent(); intent.PutExtra(FileStorageSetupDefs.ExtraPath, ioc.Path); activity.OnImmediateResult(requestCode, (int)FileStorageResults.FileUsagePrepared, intent); } else { activity.StartFileUsageProcess(ioc, requestCode, alwaysReturnSuccess); } }