使用Xamarin Android上的CreateChooser以自定义扩展名保存文件

4si2a6ki  于 2022-12-07  发布在  Android
关注(0)|答案(1)|浏览(135)

我必须要求用户选择一个位置并使用自定义扩展名(.tdr)保存文件。我已将intent.setType设置为 /,但当前我必须在不使用任何扩展名的情况下保存文件。有人能帮助我解决这个问题吗?
下面是我的代码示例

Intent intent = new Intent();
                intent.SetType("*/*");
                intent.PutExtra(Intent.ExtraAllowMultiple, false);
                intent.SetAction(Intent.ActionCreateDocument);
                MainActivity.Instance.persistentStorageService.Write("DataToWrite", projectJson);
                MainActivity.Instance.StartActivityForResult(Intent.CreateChooser(intent, "Save TRW Project File"), RequestCodeConstants.FilePickerSaveRequestCode);

在MainActivity.cs中

System.IO.Stream output = ContentResolver.OpenOutputStream(data.Data);
                            var dataToWrite = persistentStorageService.Read("DataToWrite", typeof(string));
                            var buffer = Encoding.ASCII.GetBytes((string)dataToWrite);
                            output.Write(buffer, 0, buffer.Length);
                            output.Close();
                            result = buffer;

我想以自定义扩展名保存文件。

23c0lvtd

23c0lvtd1#

问题是MimeType,需要将其设置为八位字节以自定义文件类型:

intent.SetType("application/octet");

一旦你做了这一切,你需要做的是StartActivityForResult,你就完成了。

Activity.StartActivityForResult(intent, resultCode);

确保扩展名类型是文件名本身的一部分,也可以通过Intent指定扩展名类型

intent.PutExtra(Intent.ExtraTitle, fileName);

相关问题