0
我有一个关于android中的NetworkListener的问题。BroadcastReceiver没有给出任何结果
我已经实现了一个新的类来监听是否有可用的互联网连接(数据和无线网络)。
的代码如下:
package com.gelliesmedia.thumbqoo.services;
public class NetworkStateReceiver extends BroadcastReceiver {
@SuppressWarnings("deprecation")
public void onReceive(Context context, Intent intent) {
Log.d("THUMBQOO","Network connectivity change");
if(intent.getExtras()!=null) {
NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
Log.i("THUMBQOO","Network "+ni.getTypeName()+" connected");
}
}
if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
Log.d("THUMBQOO","There's no network connectivity");
}
}
}
这我怎么在清单中注册:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name="com.gelliesmedia.thumbqoo.services.NetworkStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
当我测试使用模拟器(genymotion)它不给我任何消息即使我拔掉了我的PC LAN电缆。
我必须在所有Activity类中使用NetworkStateReceiver类吗?
即
Public class MainActivity extends MainActivity{
onCreate(...)
NetworkStateReceiver x = new NetworkStateReceiver(); <--- like this?
}
我必须人在这里做什么?任何人都可以指点我一个正确的方向?
测试它在真实设备上。标准模拟器不支持网络状态,Genymotion在推广其“产品”方面做了大量工作。 – 323go