【问题标题】:Camera does not open in android app相机无法在安卓应用中打开
【发布时间】:2014-04-02 06:07:36
【问题描述】:

大家好,我正在尝试从我的应用中拍摄快照,该应用使用设备中现有的相机应用。我已按照 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.

请帮我解决这个问题。

【问题讨论】:

  • 如果您尝试过,请告诉我它是否可以在真实设备上运行 :)

标签: android android-camera


【解决方案1】:

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

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

【讨论】:

  • 我确实添加了权限。感谢您的建议
【解决方案2】:

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

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

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

所以结果,请在真机上试一试(它会工作):)

【讨论】:

  • 我刚拿到一个安卓设备并检查了应用程序。当我单击拍照按钮时没有任何反应。我不明白错误在哪里
  • 我在另一台设备上试过了,现在可以了。诡异的!感谢您的建议。
猜你喜欢
  • 2016-07-26
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多