将相机图像传递给另一个活动,没有任何反应

时间:2016-02-11 22:05:27

标签: android android-intent android-activity camera

我的代码出了什么问题?我成功拍摄了照片,但第二项活动没有开始。我想将拍摄的照片传递给第二个活动。

public class MainActivity extends Activity {

    private static final int CAMERA_REQUEST = 1888;
    private Button buttonka;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        buttonka = (Button) findViewById(R.id.button);
        {
        buttonka.setOnClickListener(new View.OnClickListener() {
            public void onClick (View v){
                switch (v.getId()) {
                    case R.id.button: 
                        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(cameraIntent, CAMERA_REQUEST);
                        break;
                }
            }
        });
    }}

    protected void onActivityResult(int requestCode, int resultCode, Intent data, Uri mCapturedImageURI) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
            Bitmap bitmapImage = (Bitmap) getIntent().getExtras().get("data");
            Intent camintent = new Intent(MainActivity.this, Main2Activity.class);
            camintent.putExtra("bitmap", bitmapImage);
            startActivity(camintent);
        }
    }
}

接收者活动:

public class Main2Activity extends AppCompatActivity {

    private ImageView image;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        getData();
    }

    private void getData() {

        Bitmap bitImage = getIntent().getParcelableExtra("bitmap");
        image.setImageBitmap(bitImage);

    }
}

某种程度上,应用程序没有做出反应,并且没有启动第二项活动,我可能错过了什么?希望有人可以帮忙,谢谢!

2 个答案:

答案 0 :(得分:1)

在你的onActivityResult-使用data.getExtras().get("data"),而不是getIntent。您不希望用于启动应用程序的意图,您希望返回结果。

答案 1 :(得分:0)

我创建了解决方案,忘记在清单文件中添加摄像头并写入存储权限。如果有人遇到这样的问题,请确保您写的权限正确! :) +删除未使用的Uri mCapturedImageURI)