0

我的应用程序出现了一个奇怪的问题。在我的主菜单中创建了一个按钮,当点击它时,我应该按照我设定的意图将我带到我的相机。但是我只是得到一个空白的白色屏幕。

这是我的 Camera.java

import android.app.Activity;
import android.content.Intent;
import android.view.View;

public class Camera extends Activity{



public void takePhoto(View view) {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    int TAKE_PICTURE = 0;
    startActivityForResult(intent, TAKE_PICTURE);
}
 }

在我的清单文件中:

  </activity)
<activity android:name=".Camera"></activity>
 </application>

和权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

我究竟做错了什么?

4

2 回答 2

1

以下代码非常适合我打开相机而不在 Manifest 文件中声明任何权限。

package com.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Camera extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn_cal = (Button) findViewById(R.id.btn_cal);
        btn_cal.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                int TAKE_PICTURE = 0;
                startActivityForResult(intent, TAKE_PICTURE);
            }
        });

    }

}

希望这对您有所帮助。

谢谢。

于 2012-12-04T11:03:52.740 回答
0

如果您通过意图拍照,您实际上不需要权限。

这是我必须在我编写的应用程序中使用的内容:

ContentValues 值 = 新 ContentValues(); values.put(MediaStore.Images.Media.TITLE, "photo.jpg"); values.put(MediaStore.Images.Media.DESCRIPTION,"我的描述");

    cameraResultURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    //create new Intent
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraResultURI);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    startActivityForResult(intent, CAMERA_ACTIVITY);
于 2012-11-15T20:50:16.257 回答