Android intent 导出Xamarin/Android的文件意图
我的Xamarin Forms应用程序需要将数据文件(加密的字节流)导出到用户选择的外部位置(OneDrive或Google Drive等) 它适用于iOS和UWP,但安卓却难住了我。在iOS上,我使用UIDocumentPickerViewController和模式导出到服务和(在UWP上)FileSavePicker。对于Android,我尝试过使用ActionSend意图,但没有效果 我最近一次失败的尝试是:Android intent 导出Xamarin/Android的文件意图,android-intent,xamarin.forms,xamarin.android,Android Intent,Xamarin.forms,Xamarin.android,我的Xamarin Forms应用程序需要将数据文件(加密的字节流)导出到用户选择的外部位置(OneDrive或Google Drive等) 它适用于iOS和UWP,但安卓却难住了我。在iOS上,我使用UIDocumentPickerViewController和模式导出到服务和(在UWP上)FileSavePicker。对于Android,我尝试过使用ActionSend意图,但没有效果 我最近一次失败的尝试是: var intent = new Intent(Intent.ActionSen
var intent = new Intent(Intent.ActionSend);
intent.PutExtra(Intent.ExtraStream, uri);
intent.SetType("*/*");
intent.SetFlags(ActivityFlags.NewTask);
Application.Context.StartActivity(intent);
有没有更好的意图或方式来称呼这个?我的主要要求是能够将文件共享到OneDrive或Google Drive
有没有更好的方法来实现这一点?我的主要要求是能够将文件写入OneDrive或Google Drive
尝试将文件写入Google Drive或OneDrive不是一个好方法,因为与桌面不同,手机上的OneDrive/GoogleDrive不会出于性能原因自动同步文件(上传到云)
请考虑使用云API进行OnDeRiVE或谷歌驱动器:
我发现的问题是,我正在使用URI.FromFile()来获取要共享的url 我发现使用文件提供程序和调用FileProvider.GetUriForFile()成功。有关设置和使用文件提供的文档,请访问 代码摘录:
var file = new Java.IO.File(sourceFilePath);
var fileUri = FileProvider.GetUriForFile(Application.Context, "com.your-company.Xyzzy.fileprovider", file);
if ( fileUri != null ) {
var shareIntent = new Intent(Intent.ActionSend);
shareIntent.PutExtra(Intent.ExtraStream, fileUri);
shareIntent.SetDataAndType(fileUri, Application.Context.ContentResolver.GetType(fileUri));
shareIntent.SetFlags(ActivityFlags.GrantReadUriPermission);
shareIntent.SetFlags(ActivityFlags.NewTask);
StartActivityForResult(shareIntent, 0);
}
唯一的缺点是“活动结果”会立即返回“已取消”,因此在用户完成时不会进行确认。我将在另一篇文章中解决这个问题。正如问题所述,我特别希望Android能够实现这一点。我不确定你为什么会说这是一个糟糕的方法。除此之外,如何共享数据?这就是为什么我们有云服务。iOS和UWP为我们提供了方便的方法。我正在寻找提供类似行为的Android解决方案。