K. *_*ter 9 android ms-word android-intent xamarin.android android-internal-storage
我试图打开并编辑一个Word文档位于我的外部存储在我的Xamarin.Android应用程序与MS-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);
Run Code Online (Sandbox Code Playgroud)
问题是,该文件始终为只读。当我通过任何文件浏览器(例如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");
Run Code Online (Sandbox Code Playgroud)
目的比较:
我使用了Intent Intercept App将应用程序的意图与文件浏览器的意图进行比较:
intent.SetDataAndType(uri, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");器中使用MIME类型没有任何区别小智 1
如果你使用, 而不是,ActionEdit它似乎可以工作ActionView
intent.AddFlags(ActivityFlags.GrantPersistableUriPermission);
Run Code Online (Sandbox Code Playgroud)
这样,我可以打开可编辑的 .doc 文件,但是,我无法将文件保存到原始位置(在我的应用程序的沙箱中)。Word 始终建议保存副本。经过几天的摸索之后,我怀疑这是微软设计的,我们的代码没有任何问题,尽管我不能确定......
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |