我的应用程序遇到了一个奇怪的问题。在我的主菜单中创建了一个按钮,当点击它时,它应该带我到我设置的意图我的相机。但是我只是得到一个空白的白色屏幕。
这是我的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" />
我做错了什么?
答案 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);