使用Intent打开时,Word文档始终为只读

时间:2019-05-24 06:32:42

标签: android android-intent ms-word xamarin.android android-internal-storage

我正在尝试使用 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中设置的任何权限?

编辑:

  • 我已使用我的 Office帐户在Android Word应用程序中登录
  • 使用 WPS Office可以很好地工作,因此对于MS-Word来说必须是一个特殊的问题
  • 使用intent.SetAction(Intent.ActionEdit);并没有改变
  • 使用intent.SetDataAndType(uri, "application/msword");并没有改变
  • 使用 Google文档的类似行为:使用FileExplorer,我可以打开和编辑文件。如果我通过我的应用程序使用Google Docs打开文件,则可以编辑文件,但是如果单击“保存”,应用程序会要求我 “将文件更新为新的DOCX格式” < / strong>。然后,我可以将文件保存到新目录。
  • 文件浏览器中使用的ActionViewSetDataAndType组合也不起作用

像这样

intent.SetAction(Intent.ActionView);
intent.SetDataAndType(uri, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

意图比较:

我使用了意图拦截应用来比较我的应用中的意图与文件浏览器中的意图:


我的应用(Word文件为只读): enter image description here


文件浏览器(可编辑Word文件): enter image description here

  • 使用文件浏览器intent.SetDataAndType(uri, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");中的MIME类型没有任何作用

0 个答案:

没有答案