0

私はネットワークレシーバーを実装しようとしています。ここに私の次のコードがあります:

   package com.example.androidtablayout;

 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.util.Log;

public class NetworkReceiver extends BroadcastReceiver { // <1>
 public static final String TAG = "NetworkReceiver";
 boolean isConnected = true;
Context c;
 @Override
 public void onReceive(Context context, Intent intent) {


  boolean isNetworkDown = intent.getBooleanExtra(
    ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);  // <2>

  if (isNetworkDown) {
    Log.d(TAG, "onReceive: NOT connected, stopping UpdaterService");
   // context.stopService(new Intent(context, UpdaterService.class)); // <3>
   } else {
       Log.d(TAG, "onReceive: connected, starting UpdaterService");
   //  context.startService(new Intent(context, UpdaterService.class)); // <4>
    }
  }

 }

Manifest.xml 内

      <application>
       <receiver android:name=".NetworkReceiver">
    <intent-filter>
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
      </receiver> 
   </application>

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

私の問題は、wifi をオフにすると、ログにまだ「接続済み」と表示されることです。

ネットワーク受信機がインターネット接続を正しく受信していないと思います。どんな助けでも大歓迎です。

4

1 に答える 1

0

これを行う方法を示すサンプル クラスを次に示します。これはまさにあなたが必要としているものであり、問​​題の解決に役立つと思います. このサンプルでは、​​マニフェストの代わりに BroadcastReceiver をプログラムで登録していますが、問題にはならないと思います。

動作するかどうか教えてください。

于 2012-07-08T17:14:39.237 に答える