私のアプリケーションのネットワーク状態がBroadcast Receiver
に変更されました。電話がスリープモードになっていても、wifi接続切断イベントを受信する必要があります。これは、電話機が充電中および睡眠中のときに機能しますが、スリープ状態にないときは機能しません。ここ接続変更電話がスリープモードになっているときにブロードキャストレシーバーが起動しない
ここにコード
public class NetworkConnectionReceiver extends WakefulBroadcastReceiver {
public static final String INTENT_CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(INTENT_CONNECTIVITY_CHANGE)) {
NetworkChangedEvent event = new NetworkChangedEvent();
NetworkInfo activeNetworkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
boolean wifiConnected = activeNetworkInfo != null
&& activeNetworkInfo.isConnected()
&& activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI;
if (wifiConnected) {
// start a service here
}
}
}
}
あるその私はマシュマロと上記の装置で居眠りモードに関連する問題を認識していますが、私もキットカットでイベントを受信していないマニフェスト
<receiver
android:name=".NetworkConnectionReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
に登録する方法です電話機がスリープ状態にあり、充電器に接続されていないときのデバイス。
これを今にしようとしていますが、私自身はブロードキャスト自体が最初に起動していないとは思っていません。 –
がチェックされても、動作しません。 –
アップデート:あるデバイスで動作し、別のデバイスでは動作しません。今のところ受け入れる –