Android アプリケーションでは、システムの変更や特定のイベントを監視するためにブロードキャスト レシーバーが使用されます。このような一般的な使用例の 1 つは、インターネット接続の確認です。ただし、特定のシナリオでは、受信者の呼び出しをネットワーク接続が利用可能なインスタンスに制限することが望ましい場合があります。
一般的な課題は、受信者がネットワークが利用できない場合でも、2 回呼び出されます。これは、受信者のマニフェスト宣言に複数のインテント フィルターが追加されていることが原因である可能性があります。この問題を解決するには、ネットワーク接続の変更に対して次のようなアクションを 1 つだけ使用するだけで十分です。
<intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter>
2 番目の問題に対処するには、受信者はどこで行う必要がありますか?ネットワーク接続が利用可能な場合にのみトリガーされるため、提供されたコードはこの要件を効果的に満たします。 WiFi とモバイル ネットワークの両方の可用性を監視し、どちらかが接続されている場合にのみ通知します。
インターネット接続を確認するためのより簡単な方法については、次の関数を検討してください:
public boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); //should check for null as it will be null in airplane mode return (netInfo != null && netInfo.isConnected()); }
このメソッドは、モバイル デバイスがネットワークに接続されているかどうかを判断する簡潔な方法を提供します。
以上がブロードキャスト レシーバーを使用して Android アプリでのインターネット接続の変化を確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。