Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检测何时恢复小区接收_Android_Android Broadcast - Fatal编程技术网

Android 检测何时恢复小区接收

Android 检测何时恢复小区接收,android,android-broadcast,Android,Android Broadcast,由于离开覆盖范围、打开飞机模式或任何其他原因,接收可能会丢失。我对原因不感兴趣,但我只想知道何时恢复接收 是否有可以注册的意图来启动广播接收器 使用android.net.conn.connectivity\u change的连接更改接收器似乎不适用于此目的 任何帮助都将不胜感激。您可以使用。您可以使用电话状态的接收器执行此操作 在舱单中: <uses-permission android:name="android.permission.READ_PHONE_STATE" />

由于离开覆盖范围、打开飞机模式或任何其他原因,接收可能会丢失。我对原因不感兴趣,但我只想知道何时恢复接收

是否有可以注册的意图来启动广播接收器

使用android.net.conn.connectivity\u change的连接更改接收器似乎不适用于此目的

任何帮助都将不胜感激。

您可以使用。您可以使用电话状态的接收器执行此操作

在舱单中:

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

<receiver android:name=".PhoneStateReceiver">
    <intent-filter>
      <action android:name="android.intent.action.PHONE_STATE" />
   </intent-filter>
</receiver>
PhoneStateListener:

import android.telephony.PhoneStateListener;

class ServiceStateListener extends PhoneStateListener {
    public void onServiceStateChanged (ServiceState serviceState) {
        boolean connected = (serviceState.getState() == ServiceState.STATE_IN_SERVICE);
        // Do work based on "connected"
    }
}

我实现了您的解决方案,但如果切换到飞行模式,则不会触发onReceive方法,但只有在CALL_状态更改时才会触发。知道为什么吗?
import android.telephony.PhoneStateListener;

class ServiceStateListener extends PhoneStateListener {
    public void onServiceStateChanged (ServiceState serviceState) {
        boolean connected = (serviceState.getState() == ServiceState.STATE_IN_SERVICE);
        // Do work based on "connected"
    }
}