【问题标题】:Camera Intent launch inside an activity在 Activity 内启动相机 Intent
【发布时间】:2011-09-08 12:31:46
【问题描述】:

我有一个名为 MainActivity 的活动和一个名为 CameraService 的服务,它绑定到一个套接字端口。每当套接字接收到字符串“camera”时,Service 就会向 MainActivity 广播以启动摄像头。

Intent launchIntent = new Intent(MainActivity._LAUNCH_CAMERA_ACTION);
sendBroadcast(launchIntent);

MainActivity 注册 _LAUNCH_CAMERA_ACTION 和一个 BroadcastReceiver。

IntentFilter filter = new IntentFilter();
filter.addAction(_LAUNCH_CAMERA_ACTION);
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
       if (_LAUNCH_CAMERA_ACTION.equalsIgnoreCase(intent.getAction())) {
         Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     MainActivity.this.startActivityForResult(cameraIntent, REQUEST_CAMERA);
       }
}
}, filter);

每当调用相机意图时,程序都会显示一个未处理的异常,并因为该异常而终止。

任何想法为什么会发生这种情况?

【问题讨论】:

  • 抛出的异常:应用程序...已意外停止。请重试。
  • 这也不例外。使用 logcat 获取整个日志,然后检查其中是否有 ERROR 行。

标签: android android-camera android-service


【解决方案1】:

引用this的帖子可以做:

     Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");  
     startActivityForResult(intent, 0);

并在清单文件中添加摄像头使用权限。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多