MVVMCross PictureChooser插件在Android

时间:2015-08-20 00:35:34

标签: android plugins xamarin xamarin.android mvvmcross

我试图让用户从Android上的库中选择一张图片。但是,当我使用PictureChooser插件时,它似乎不再起作用了(

我已经看到此代码正常运行,但现在它没有,我无法弄清楚原因。

        var task = Mvx.Resolve<IMvxPictureChooserTask> ();
                task.ChoosePictureFromLibrary (1024, 92,
                    stream => {
                        MemoryStream ms = new MemoryStream ();
                        stream.CopyTo (ms);

                        _currentTarget.ImageBase64 = Convert.ToBase64String (ms.ToArray ());
                        SaveTarget ();
                        RaisePropertyChanged (() => TargetImage);
                    }, () => {

                    });

我的日志说明如下:

mvx:Warning:1665,79 Warning - activity request code may clash with Mvx code for PickFromFile
mvx:Warning:1665,79 Warning - activity request code may clash with Mvx code for PickFromFile
mvx:Diagnostic:1665,82 OnMvxIntentResultReceived in MvxAndroidTask
mvx:Diagnostic:1665,82 OnMvxIntentResultReceived in MvxAndroidTask
mvx:Diagnostic:1665,83 ProcessMvxIntentResult started...
mvx:Diagnostic:1665,83 ProcessMvxIntentResult started...
mvx:Diagnostic:1665,84 Non-OK result received from MvxIntentResult - Canceled - request was 30001
mvx:Diagnostic:1665,84 Non-OK result received from MvxIntentResult - Canceled - request was 30001

奇怪的是,我确实得到了一个PictureChooser对话框,但同时调用了assumeCancelled动作。当我选择一个图像时,没有任何事情发生了:(

我正在使用mvvmcross 3.5.1

2 个答案:

答案 0 :(得分:1)

它发生在一些设备上。不是全部。

原因是我从片段(viewmodel)开始使用picturechooser插件。因此,结果处理出错了。

我无法立即找到修复程序,所以我首先导航到一个Activity,然后启动picturechooser,现在工作正常。

答案 1 :(得分:0)

正如https://stackoverflow.com/a/10564488/368379所指出,当从片段调用StartActivityForResult时,活动会更改请求代码。

这应该在Android支持23.2.0中修复,我们正在使用我们的MvvmCross Android支持包。

这是issue for many developers for over 3.5 years(谢谢谷歌!)