我试图打开并编辑一个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也不起作用像这样 …
android ms-word android-intent xamarin.android android-internal-storage
我对Java Overload Methods有疑问.
假设我有一个重载方法foo:
public static String foo(String x) {
return "foo-String: " + x;
}
public static String foo(Object x) {
return "foo-Object: " + x;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现像这样的功能
public static String useString() {
return(foo("useString"));
}
public static String useObject() {
return(foo("useObject"));
}
Run Code Online (Sandbox Code Playgroud)
其中一个使用重载的字符串方法,一个是重载的对象方法?
foo-Method的调用应该使用String输入.(这意味着我不想和演员一起工作
return(foo((Object)"useObject"));
Run Code Online (Sandbox Code Playgroud)
也许你可以帮我解决这个问题
上面,只是练习的一个例子.我试图更好地理解Overloads和Dispatch,并且正在寻找用于调用(和选择)重载方法的替代解决方案.