相机无法在Android应用中打开

时间:2014-04-01 21:56:21

标签: android android-camera

大家好,我正在尝试从我的应用程序中获取快照,该应用程序使用设备中现有的相机应用程序。我已按照Android开发者网站上提供的步骤操作。

public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
    switch(item.getItemId()){
    case R.id.pic_take:
        i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i, cameraData);
        return true;
    }
    return super.onMenuItemSelected(featureId, item);
}

接着是:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == cameraData && resultCode == RESULT_OK){
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        cameraView.setImageBitmap(bmp);

    }
}

我还确保我的模拟器启用了前置和后置摄像头。

请不要关闭这个问题。问题是当我选择相机没有打开的选项时,活动日志中也没有错误。应用程序也没有崩溃: 当我单击该选项时,我在活动日志中获得的唯一消息是:

04-01 17:44:16.665: I/Choreographer(1227): Skipped 48 frames!  The application may be doing too much work on its main thread.

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

想知道你是否在AndroidManifest.xml中声明了相机权限。

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

答案 1 :(得分:0)

像相机这样的东西有时候无法在模拟器上正常工作......如果可以的话,我建议你在真实的设备上试试......也是为了那个错误

Skipped 48 frames!  The application may be doing too much work on its main thread.

您看到的消息在手机上很重要,但在模拟器中则不重要。模拟器非常慢。您所做的一切都不是资源密集型,因此您的应用程序应该在设备上名义上执行。

结果,请在真实设备上试用(它会起作用):)