デバイスの接続を自動的に監視する必要があります。これを行うには、受信機をに登録します
<receiver android:name=".NetworkStateReceiver" android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.wifi.STATE_CHANGE"/>
<action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
</intent-filter>
</receiver>
正常に動作しますが、WiFi がスリープ モードになると、ネットワーク情報は DISCONNECTED/BLOCKED の状態になります。これは問題ありません。バッテリーなどを節約するためにこれを行う理由を理解しています。
問題は、WiFi がスリープ モードになると、レシーバーがインテントを受信しないことです。デバイスを起動すると、WiFi は接続状態に切り替わりますが、インテントは受信されません。
(Nexus 5X でテスト済み)
状態を確認するために X 分ごとに発生するアラームを使用せずに、これらのイベントを受信する方法はありますか?
接続の変更を確認しました 電話がスリープモードのときにブロードキャストレシーバーがトリガーされませんが、応答は無関係のようです