0

我已经使用下面的代码实现了一个 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
           }
    }
}

这说明了来电,但现在我想使用接近传感器来获取值并在传感器值更改时选择呼叫我可以使用实现 SensorEventListener 的活动,但如何在广泛的 casr 接收器中使用这些值。

4

1 回答 1

0

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

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

于 2014-11-18T10:49:56.143 回答