2

我只想用我的相机拍一张照片-(那个功能)

为了进一步使用它,我需要路径是意图保存了图片。但我不想告诉意图它应该把文件放在哪里。(因为现在它只是自动创建文件。

这是启动相机的功能

public void doCam() {
    Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
    // startActivityForResult(intent,0);

    try {
        startActivityForResult(i, TAKEPICTURE_ACTIVITY);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(this, "Application not available",
                Toast.LENGTH_SHORT).show();
    }
    // Log.e(TAG, "Error in taking picture");
}

这是结果的获取,我想在字符串地址中找到带有图片名称的路径

我已经找到了不同的解决方案,但是所有涉及在拍照之前选择文件名 -> 所以应用程序决定了图片的命名方式。

 public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == TAKEPICTURE_ACTIVITY) {

        // super.onActivityResult(requestCode, resultCode, intent);
        if (resultCode == RESULT_OK) {

            Bundle extras = intent.getExtras();
            Bitmap bitmap = (Bitmap) extras.get("data");
            //doesn't work
            String address= (String) extras.get("EXTRA_OUTPUT");
4

2 回答 2

0

路径应该在intent.getData()try it 中找到。如果你没有它,那么你应该考虑强制相机将视频保存在自定义位置。

于 2012-06-21T19:50:58.760 回答
-2

这是获取最近捕获图像的路径的方法:

    try{
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
    } catch(Exception e){
        e.printStackTrace();
    }

在 onActivityResult() 方法中:

     String path=null;
            try{
                Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
                path=getLastImagePath();
            } catch(Exception e){
            }
于 2012-06-22T06:24:48.040 回答