0

私は5月のアプリでカメラの写真をキャプチャしようとしています...これは私が持っているものです:写真は保存されていますが、アクティビティ結果でNullポイント例外が発生します。何が欠けている可能性がありますか?

private Uri getImgUri() {
    File filePath= new File(Environment.getExternalStoragePublicDirectory   (Environment.DIRECTORY_PICTURES),APP_ALIAS);
    if(!filePath.exists()){
        if(!filePath.mkdirs())
            return null;
    }
    String timeStamp= new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String path=filePath.getPath()+File.separator+"_IMG"+timeStamp+".jpg";
    File file=new File(path);
    return Uri.fromFile(file);
}

private void startGetPicFromCam() {

    Intent intent= new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    Uri uri= getImgUri();
    intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
    startActivityForResult(intent,MEDIA_CAPTURE_RESULT_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   // super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==MEDIA_CAPTURE_RESULT_CODE){
        if(resultCode==RESULT_OK){
            try{
            if(data.getData()!=null)
            Toast.makeText(this,"saved to "+data.getData(),Toast.LENGTH_LONG).show();
            else
                Toast.makeText(this,"saved to path",Toast.LENGTH_LONG).show();
            }
            catch(Exception e){
                Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG).show();
            }
        }
    }
}
4

1 に答える 1

0

編集、あなたの質問を十分に読んでいないようです。EXTRA_OUTPUT を使用すると、null インテントが返されることが問題のようです。データにアクセスしたい場合は、エクストラとして渡したファイルをクエリするだけです。詳細については、thisおよびthis question を参照してください。

于 2013-08-05T20:38:56.487 に答える