ホームページ  >  記事  >  Java  >  Android でネットワーク接続の変更を検出して処理する方法?

Android でネットワーク接続の変更を検出して処理する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 19:22:02357ブラウズ

How to Detect and Handle Network Connectivity Changes in Android?

Android でのネットワーク接続の監視

問題:

ネットワークの変化を監視するにはどうすればよいですかAndroid デバイスに接続してネットワーク停止イベントをキャプチャしますか?

回答:

Android でネットワーク停止イベントをキャプチャするには、次の手順に従います:

1.ブロードキャスト レシーバーを作成します:

BroadcastReceiver クラスを拡張する新しい Java クラスを作成します:

<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive( Context context, Intent intent )
  {
    // Network connectivity change handling code goes here
  }
}</code>

2.ブロードキャスト レシーバーを登録します。

次の XML コードを 内の AndroidManifest.xml ファイルに追加します。要素:

<code class="xml"><receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"
          android:label="NetworkConnection">
  <intent-filter>
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
  </intent-filter>
</receiver></code>

3.権限の付与:

内の AndroidManifest.xml ファイルに次の権限を追加します。要素:

<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/></code>

4.ネットワーク接続の変更の処理:

ConnectionChangeReceiver クラスの onReceive メソッド内で、ネットワーク接続の変更を処理できます。たとえば、次を使用してアクティブなモバイル ネットワーク情報を確認できます:

<code class="java">ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE );</code>

コード例:

<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive( Context context, Intent intent )
  {
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(     ConnectivityManager.TYPE_MOBILE );
    if ( activeNetInfo != null )
    {
      Toast.makeText( context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
    if( mobNetInfo != null )
    {
      Toast.makeText( context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
  }
}</code>

以上がAndroid でネットワーク接続の変更を検出して処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。