0

私はAndroidを初めて開発しており、現在Googleのトレーニングコースに従っています。バンドルextra = data.getExtras()を実行すると、extraはnullになります。私は、コード"if(extra!=null)" を追加する前に、また、それはここでonActivityResult()メソッドここバンドルextra = data.getExtras()カメラ撮影後に何も取得しません

enter image description here

のコードがあるNullPointerExceptionがスローされますコードの一部は

enter image description here

を、カメラを起動して、ローカルに写真を保存することです

私のすべてのコードはトレーニングコースに沿っており、どこが間違っているのか混乱しています。 誰かが私を助けることができますか?

+4

イメージではなくコードをここに入力してください。 – currarpickt

答えて

0

onActivityResult()を更新してください。キャプチャした写真の結果は画像に反映されません。あなたが渡したUriを返します。photo_intent.putExtra(MediaStore.EXTRA_OUTPUT, <<uri>>)。それでは、あなたがカメラを意図して、余分なパラメータMediaStore.EXTRA_OUTPUTを渡す場合は、カメラの活動がそのパスに撮影した画像を書きますと、それは戻りませんonActivityResult()

+0

私はあなたが正しいと思うし、今私はそれがウリを返すと思う、私はそれを修正するつもりだと思う、ありがとう! – smilebuz

+0

@smilebuz結果はどうですか? –

+0

今、このメッセージを正しく表示できます。ありがとうございます! – smilebuz

0
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { 

      hasWriteContactsPermission = checkSelfPermission(Manifest.permission.CAMERA); 
      if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) { 
       requestPermissions(new String[]{Manifest.permission.CAMERA}, 
         REQUEST_CODE_ASK_PERMISSIONS); 
       return; 
      } 
     } else { 
      Intent intent = new Intent(
         MediaStore.ACTION_IMAGE_CAPTURE); 
       if (intent.resolveActivity(getPackageManager()) != null) { 
        File photo = new File(Environment 
          .getExternalStorageDirectory(), 
          "Journal" + Utils_class.getID() + ".jpeg"); 
        intent.putExtra(MediaStore.EXTRA_OUTPUT, 
          Uri.fromFile(photo)); 
        mSelectedFilePath = photo.getAbsolutePath(); 
        startActivityForResult(intent, 
          ACTION_TAKE_PICTURE); 
       } 

     } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     try { 
      if (resultCode == RESULT_OK) { 
     if (requestCode == ACTION_TAKE_PICTURE) { 
        // flag = true; 
        // new Utils(); 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
         checkPermissionForStorageForCam(); 
        } else { 

         Uri selectedImageUri = data.getData(); 

        } 


       } 

      } 
     } catch (Exception e) { 
     } 
    } 
+0

@smilebuzあなたはマシュマロであるかどうかをチェックする必要があります。 marsh mellowが実行時間に対して許可を得たことを意味する場合。 –

0

でこの値を得ることができるグローバルとして<<uri>>を宣言してくださいonActivityResultメソッドのビットマップ

渡しているパスを確認すると、実際にカメラがそのパスにキャプチャしたファイルを書き込んでいたことがわかります。

関連する問題