Pergunta

Eu podia fazer um vídeo da galeria da samsung e htc.Mas No nexus e moto g, eu tenho um ponteiro null excepção de onActivityresult.Por que ele não está funcionando em particular, esta celulares?

            onClick:

            selectPhoto.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub

                            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                            intent.setType("video/*");
                            Uri uri=getOutputVideoUri();
                            intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
                            startActivityForResult(
                                    Intent.createChooser(intent, "Select video"),
                                    SELECT_PHOTO);
                        }
                    });

            onActivityResult:

            @Override
                protected void onActivityResult(int requestCode, int resultCode,
                        Intent imageReturnedIntent) {
                    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

                    if (resultCode == RESULT_OK) {
                        Bundle extras=new Bundle();

                        selectedImage = imageReturnedIntent.getData();
                        file_select = true;
                        Log.i("selectedImage","Upload-->" +selectedImage);
                        // -----------------
                        imageUrl = getRealPathFromURI(selectedImage);
                        Log.i("imageurl", "Upload-->" + imageUrl);
                        Log.i("RealPathFromURI", imageUrl + "laxmi");
                        String filepath = getRealPathFromURI(selectedImage);
                        File fil = new File(filepath);
                        filename = fil.getName();
                        if (filename.endsWith(".mp4") || filename.endsWith(".flv")
                                || filename.endsWith(".3gp")) {
                            videoname.setText(fil.getName());
                            Bitmap bmThumbnail;
                            bmThumbnail = ThumbnailUtils.createVideoThumbnail(filepath,
                                    Thumbnails.MICRO_KIND);
                            image.setImageBitmap(bmThumbnail);
                        } else {
                            Toast.makeText(context,
                                    "Por favor, seleccione un archivo de v�deo ",
                                    Toast.LENGTH_SHORT).show();
                        }

                    }
                    if (resultCode == PICK_CATEGORY) {
                        category_select = true;
                        cat_id = imageReturnedIntent.getStringExtra("catid");

                        String category_name = imageReturnedIntent
                                .getStringExtra("catname");
                        spinner.setText("  " + category_name);
                    }

                }

            public String getRealPathFromURI(Uri contentUri) {
                    try{
                    String[] proj = { MediaStore.Video.Media.DATA };
                            //Cursor cursor = activity.managedQuery(contentUri, proj, null, null,
                            //null);
                     Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
                    Log.i("cursor", "upload-->" + cursor);
                    Log.i("contentUri", "upload-->" + contentUri);
                    Log.i("proj", "upload-->" + proj);
                     int position=0;

                        if (cursor !=null && cursor.moveToPosition(position)) {
                            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

                            Log.i("column_index", "Upload-->" + column_index);
                            videoPath = cursor.getString(column_index);  //I got a null pointer exception here.(But cursor hreturns saome value)
                            Log.i("videoPath", "Upload-->" + videoPath);
                            cursor.close();

                        }

                    }catch(Exception e){
                        return contentUri.getPath();
                    }
                    return videoPath;

                }
Foi útil?

Solução

Você tem usado intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);.Remover.Você não vai ficar NPE.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top