大家好,我正在尝试从我的应用程序中获取快照,该应用程序使用设备中现有的相机应用程序。我已按照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.
请帮我解决这个问题。
答案 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.
您看到的消息在手机上很重要,但在模拟器中则不重要。模拟器非常慢。您所做的一切都不是资源密集型,因此您的应用程序应该在设备上名义上执行。
结果,请在真实设备上试用(它会起作用):)