【发布时间】:2020-09-07 10:41:43
【问题描述】:
我需要在 android 的共享存储中保存一个文件。我遇到了这个链接 => https://developer.android.com/training/data-storage/shared/documents-files
我正在使用依赖服务,并且能够成功地将文件保存到所需位置。但我只能创建一个空白文件。我需要将一些内容写入该文件。实际上,我在几个小时前使用 android 标签创建了一个线程,并获得了我必须覆盖 OnActivityResult 方法并获取意图数据的解决方案。现在我已经完成了,我能够获得意图数据。但是现在我不知道我应该从意图中选择哪个路径以及如何使用所选路径打开文件以及如何将内容写入该所选文件。任何 android + xamarin 专家都应该能够帮助我..
实现写服务的android平台代码:
Activity _activity;
private static int CREATE_FILE = 6835;
public WriteFileService()
{
_activity = CrossCurrentActivity.Current.Activity;
}
void IWriteService.WriteFile(string Content)
{
Intent intent = new Intent(Intent.ActionCreateDocument);
intent.AddCategory(Intent.CategoryOpenable);
intent.SetType("application/txt");
intent.PutExtra(Intent.ExtraTitle, "Invoice.txt");
_activity.StartActivityForResult(intent, CREATE_FILE);
}
重写的 OnActivityResultMethod:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
Toast.MakeText(Application.Context, "requestCode is " + requestCode, ToastLength.Short).Show();
if (requestCode == 6835)
{
if (data != null)
{
Toast.MakeText(Application.Context,
data.GetType().ToString(),
ToastLength.Short).Show();
}
}
base.OnActivityResult(requestCode, resultCode, data);
}
这是来自 OnActivityResult 的 Intent 数据屏幕
【问题讨论】:
-
您链接到的文档给出了写入文件的具体示例
-
@Jason。我想我经过一番研究后得到了答案。我正在发布它..
标签: xamarin.forms