我正在尝试接收来自 CONNECTIVITY_ACTION 的广播消息:
// register BroadcastReceiver on network state changes
final IntentFilter mIFNetwork = new IntentFilter();
mIFNetwork.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION); //"android.net.conn.CONNECTIVITY_CHANGE"
registerReceiver(mIRNetwork, mIFNetwork);
接收者是:
private BroadcastReceiver mIRNetwork = new BroadcastReceiver() {
@Override
public void onReceive(final Context context, final Intent intent) {
android.util.Log.i(TAG,"mIRNetwork: Network State Received: "+intent.getAction());
Bundle extras = intent.getExtras();
if (extras!=null){
android.util.Log.i(TAG,"mIRNetwork: ACTION_BACKGROUND_DATA_SETTING_CHANGED: "+extras.getString(ConnectivityManager.ACTION_BACKGROUND_DATA_SETTING_CHANGED));
android.util.Log.i(TAG,"mIRNetwork: CONNECTIVITY_ACTION: "+extras.getString(ConnectivityManager.CONNECTIVITY_ACTION));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_EXTRA_INFO: "+extras.getString(ConnectivityManager.EXTRA_EXTRA_INFO));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_NO_CONNECTIVITY: "+extras.getString(ConnectivityManager.EXTRA_NO_CONNECTIVITY));
android.util.Log.i(TAG,"mIRNetwork: EXTRA_REASON: "+extras.getString(ConnectivityManager.EXTRA_REASON));
}
}
简而言之,额外内容始终为空。我认为如果我失去了 WiFi 连接,我应该得到 EXTRA_NO_CONNECTIVITY (因为它是连接互联网的唯一途径)或者至少是列表中的某些内容。但没有运气。如果我断开我的 WiFi AP 接收器会收到他的消息,但没有任何附加信息。当我再次打开 WiFi 时,接收器会触发,但没有额外的信息...这是为什么?如何知道该应用程序丢失了任何网络连接?我以为就是这样。
你不能得到额外的,但你可以通过这种方式获取数据
private class ConnectivityBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager
.EXTRA_NO_CONNECTIVITY, false);
NetworkInfo info1 = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager
.EXTRA_NETWORK_INFO);
NetworkInfo info2 = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager
.EXTRA_OTHER_NETWORK_INFO);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean failOver = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
Log.d("MY_TAG", "onReceive(): mNetworkInfo=" + info1 + " mOtherNetworkInfo = " +
(info2 == null ? "[none]" : info2 + " noConn=" + noConnectivity));
}
}
欲了解更多信息,请参阅此
http://code.google.com/p/androidwisprclient/source/browse/trunk/src/com/joan/pruebas/NetworkConnectivityListener.java?r=2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)