我通过 Xamarin 在 Android 上使用 MvvmCross,但遇到了问题。我创建了一个名为 IFileExplorerService 的核心服务接口。
此界面的目标是打开一个打开的文件对话框并选择一个文件,无论设备是什么(Windows 或 android)。
在 Android 上,我只需使用 OnActivityResult 和 Intents,就可以轻松地通过视图轻松做到这一点,而无需我的界面。
但从我的角度来看,我无法让它工作,因为接口实现是在设置中注册的单例,当我从我的视图模型调用它时,绝对没有人来处理 OnActivityResult。
我尝试使我的 FileExplorer 实现从 Activity 或 MvxActivity 继承,这样我的 FileExplorer 可以覆盖 OnActivityResult,但这失败了。
我尝试使用 StartActivity(typeof(FileExplorer)) 但这显然会失败,因为它不会是在 MvvmCross 中注册的将启动的单例。
有人对此有任何想法/评论/问题/建议来帮助我吗?
到目前为止,这是我的代码:
public class FileExplorerService : IFileExplorerServiceMock
{
string _addedFileName;
public static int REQUEST_FILE_CAPTURE = 2;
private bool _hasMediaBeenAdded;
private TaskCompletionSource<String> GetFileTask;
public Activity activity;
public FileExplorerService()
{
GetFileTask = new TaskCompletionSource<string>();
}
private void DispatchSelectFileIntent()
{
Intent Intent = new Intent();
Intent.SetType("*/*");
Intent.SetAction(Intent.ActionGetContent);
activity.StartActivityForResult(Intent.CreateChooser(Intent, "Select …Run Code Online (Sandbox Code Playgroud)