私はサンドボックスアンドロイドN・アプリケーションで受信機を定義していますAndroid Nはandroid.net.conn.CONNECTIVITY_CHANGEをブロードキャストしていませんか?
<receiver
android:exported="true"
android:name="com.sandboxapplication.NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
それはかなり簡単です:
public class NetworkReceiver extends BroadcastReceiver {
private static final String TAG = NetworkReceiver.class.getName();
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Received Network Change event.");
}
}
私のbuild.gradleに私のtargetSdkVersionを提出する場合、この受信機は正常に動作している。しかし23です。 targetSdkVersionを24に設定すると、受信者は何も受信しません。実際、受信機にデバッグブレークポイントを置くと、Android Studioは私に、クラスが決してメモリにロードされないように見えることを視覚的に示します。
Android Nのドキュメントで非常に基本的なことを忘れましたか?接続変更イベントを検出する新しい方法はありますか?
ありがとう、私はドキュメンテーションで非常に基本的なものを見逃しているに違いないと知っていました... – DanMD
@DanMDおそらくhttps://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTIONこれについて言及するためにわずかな努力をしていない...時間の無駄。 –
作業リンク:https://developer.android.com/about/versions/nougat/android-7.0-changes.html – rmtheis