0

Extraのパスを持つカメラのインテントを送信しています。しかし、結果として私は画像パスを取得していません。私はどこが間違っていますか?

私のコードは

 Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
               if (!APP_FILE_PATH_Images.exists()) 
                {
                     APP_FILE_PATH_Images.mkdirs();
                }
             Uri uriSavedImage  =Uri.fromFile(new File(APP_FILE_PATH_Images+ File.separator +
                        "IMG_"+ getTimeStamp() + ".jpeg"));
             cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
             startActivityForResult(cameraIntent, CAMERA_REQUEST); 

onActivityResultコードは次のとおりです。

    else if(requestCode==CAMERA_REQUEST)
                {
                    Uri selectedImage = data.getData();
                    String[] proj = { MediaStore.Images.Media.DATA };
                    Cursor cursor = getContentResolver().query(selectedImage, proj, null, null, null);
                    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
                    cursor.moveToFirst();

                    final String filePath = cursor.getString(column_index);
                    Log.i("File path", filePath+"");
                    cursor.close();
                    runOnUiThread(new Runnable()
                    {
                        @Override
                        public void run() 
                        {
                            imageData= new ImagesData();
                            imageData.Source= filePath;
                            imageData.isVector= false;
                            addImage(imageData);
                        }
                    });

                }

同じコードで動画を撮ることができます。ありがとう、

4

1 に答える 1

0

結果にパスを戻す必要はありません。渡したパスになります。結果が戻ってきたら、そのURIを使用してみてください。(つまり、インテントから読み取ろうとせず、ローカルに保存するだけです。)これはビデオのキャプチャと同じではありません。詳細については、http://developer.android.com/training/camera/photobasics.htmlを参照してください。

于 2012-08-27T06:24:28.337 に答える