1

まず、デバッグに Samsung Galaxy Tab 2 を使用しています。Samsung の問題については知っていますcam-intent。のデータ インテントに関する一般的な問題のようOnActivityResultです。しかし、私のものは別のもののようです。

ローカライズできNullReferenceExceptionないエラーが発生しました。しかし、コードを見てみましょう (これは一部です)。

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        System.Console.WriteLine("---------------Reached OnActivityResult");
        base.OnActivityResult(requestCode, resultCode, data);
        var pic = new Picture();
        if (requestCode == 0 && resultCode == Result.Ok)
        {
            if (requestCode == 0)
            {
                if (data != null)
                {
                    Uri imageUri = null;
                    // Check if the result includes a thumbnail Bitmap
                    var mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
                    var contentUri = Android.Net.Uri.FromFile(_file);
                    mediaScanIntent.SetData(contentUri);
                    this.SendBroadcast(mediaScanIntent);
                    var bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, contentUri);
                    var info = data.GetStringArrayExtra("PictureInfo");

                    pic = new Picture(info[0], int.Parse(info[2]), info[1],
                                        Core.Helpers.ConversionHelper.GetStringFromImage(bitmap));
                }
                else
                {
                    ContentResolver cr = ContentResolver;
                    String[] p1 = new String[] {
                        MediaStore.Images.ImageColumns.Id,
                        MediaStore.Images.ImageColumns.DateTaken
                        };
                    ICursor c1 = cr.Query(MediaStore.Images.Media.ExternalContentUri, p1, null, null, p1[1] + " DESC");
                    if (c1.MoveToFirst())
                    {
                        String uristringpic = "content://media/external/images/media/" + c1.GetInt(0);
                        Android.Net.Uri newuri = Android.Net.Uri.Parse(uristringpic);
                        Log.Info("TAG", "newuri   " + newuri);
                        var bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, newuri);
                        pic = new Picture(_picture.DocumentNo, _picture.LineNo, _picture.ItemNo, Core.Helpers.ConversionHelper.GetStringFromImage(bitmap));
                    }
                    c1.Close();
                }
            }
        }

このコードを実行すると、System.Console出力と出力が得られLog.Infoます。だから私はそれがこの行まで実行されることを知っていますLog.Info("TAG", "newuri " + newuri);

アイデア?私は感謝されます。:-/

LogCat メッセージ:

09-06 13:30:11.910: E/mono(17434): Android.App.Activity.n_OnActivityResult_IILandroid_content_Intent_ (IntPtr jnienv, IntPtr native__this, Int32 requestCode, Int32 native_resultCode, IntPtr native_data) [0x00013] で /Users/builder/data /lanes/monodroid-mac-monodroid-4.2.4-branch/9f7cbd60/source/monodroid/src/Mono.Android/platforms/android-12/src/generated/Android.App.Activity.cs:1557 
4

0 に答える 0