在BroadcastReceiver中使用传感器值

时间:2014-11-18 10:21:20

标签: android broadcastreceiver proximitysensor

我已使用下面的代码

实现了BroadcastReceiver以获取传入呼叫状态
public class callReceiver extends BroadcastReceiver {
    Context mContext;

    @Override
    public void onReceive(Context mContext, Intent intent)
    {

           String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
            if(state.equals(TelephonyManager.EXTRA_STATE_RINGING))
            {
                Toast.makeText(mContext, "Phone Is Ringing", Toast.LENGTH_LONG).show();
               // Your Code
           }
    }
}

这表示来电但现在我想使用接近传感器获取值并在传感器值更改时选择呼叫 我可以使用Activity实现SensorEventListener,但是如何在宽casr接收器中使用这些值。

1 个答案:

答案 0 :(得分:0)

广播接收器不允许处理超过5秒,并且一旦onReceive方法的执行结束,上下文就会被破坏。你实际上可以有一个接收器用于接近传感器,并检查onReceive方法中的呼叫状态的电话管理器。

或者您可以在上述接收器中启动服务并在那里注册接近传感器。