我正在尝试使用 MS-Word 通过打开并编辑位于我Xamarin.Android应用程序外部存储中的 word文档此代码:
File wordFile = new File(wordFilePath);
wordFile.SetWritable(true);
FileInfo fileInfo = new FileInfo(wordFilePath);
fileInfo.IsReadOnly = false;
Android.Net.Uri uri = FileProvider.GetUriForFile(Context, Context.PackageName + ".provider", wordFile);
Intent intent = new Intent();
intent.AddFlags(ActivityFlags.NewTask);
intent.AddFlags(ActivityFlags.GrantReadUriPermission);
intent.AddFlags(ActivityFlags.GrantWriteUriPermission);
intent.AddFlags(ActivityFlags.GrantPersistableUriPermission);
intent.SetAction(Intent.ActionView);
intent.SetData(uri);
Context.StartActivity(intent);
问题在于,该文件始终为只读。当我通过任何文件浏览器(例如File Manager Pro)打开文档时,该文件不是只读的,我可以编辑该文件。
我是否缺少需要在应用程序或FileProvider中设置的任何权限?
编辑:
intent.SetAction(Intent.ActionEdit);
并没有改变intent.SetDataAndType(uri, "application/msword");
并没有改变ActionView
和SetDataAndType
组合也不起作用像这样
intent.SetAction(Intent.ActionView);
intent.SetDataAndType(uri, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
意图比较:
我使用了意图拦截应用来比较我的应用中的意图与文件浏览器中的意图:
intent.SetDataAndType(uri, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
中的MIME类型没有任何作用