在我的应用程序中启动相机时没有得到任何东西

时间:2012-11-15 20:45:16

标签: android android-layout android-intent

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

这是我的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" />

我做错了什么?

2 个答案:

答案 0 :(得分: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);
            }
        });

    }

}

希望这能以某种方式帮助你。

感谢。

答案 1 :(得分:0)

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

以下是我在我写的应用程序中使用它的内容:

ContentValues values = new 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);