应用程序最小化时访问相机

时间:2013-02-15 17:10:43

标签: android android-intent android-camera android-service

在我的应用程序中,我通过检索相机对象来访问相机。然后我开始一个不断管理一些数据的服务。在某些情况下,服务会向活动发送广播请求以使用相机对象。

因此,当我的应用程序被最小化时,服务不能再使用相机了。为什么?当我回到我的应用程序时它会崩溃

  

02-15 18:06:56.100:E / AndroidRuntime(23686):致命异常:主要   02-15 18:06:56.100:E / AndroidRuntime(23686):   java.lang.RuntimeException:接收广播Intent时出错{   act = android.intent.action.MAIN flg = 0x10(有额外的)} in   com.mkyong.android.MainActivity$1@418e4730

整个堆栈跟踪http://dpaste.com/933015/

因此,服务发送了一个意图android.intent.action.MAIN但活动从未收到过。{/ p>

我在我的活动中抓住了这样的意图:

    @Override
    protected void onResume() {

        super.onResume();

        IntentFilter intentFilter = new IntentFilter(
                "android.intent.action.MAIN");

        mBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               //access camera
            }
        };

        this.registerReceiver(mBroadcastReceiver, intentFilter);
    }

当应用程序最小化时,是否有机会捕获意图并访问摄像头?我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

如您的堆栈跟踪所示,您已在release()上调用Camera,此后Camera对象不再有效。在getParameters()之后,您无法在Camera上致电release()