这是清单部分
<receiver
android:name="my.com.app.ConnectivityModifiedReceiver"
android:label="NetworkConnection" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
这是Java代码
public class my.com.app.ConnectivityModifiedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.sendBroadcast(new Intent("ConnectivityModified"));
}
}
该ConnectivityModifiedReceiver将根据网络连接change.In我的情况下,VPN连接和断开发送意图。
我得到的棒棒糖但不是在杰利贝恩意图。
PLZ帮助
到目前为止,在我的调查结果
在棒棒糖
当任VPN连接或断开android.net.conn.CONNECTIVITY_CHANGE广播仅触发。
所以,你可以使用下面的代码片段与你有棒棒糖预设备的逻辑一起。
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
String KeyNI="networkInfo";
android.net.NetworkInfo bundleNetworkInfo=(android.net.NetworkInfo)bundle.get(KeyNI);
if(!bundleNetworkInfo.getTypeName().toString().equalsIgnoreCase("VPN"))
{
context.sendBroadcast(new Intent("ConnectivityModified"));
}
}
希望这可以帮助。
如果它可以帮助你可能给这对你的onReceive一试:
@Override
public void onReceive(Context context, Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = connMgr.getActiveNetworkInfo();
// should check null because in air plan mode it will be null
if (netInfo != null && netInfo.isConnected()) {
System.out.println("INTERNET IS AVAILABLE");
} else {
System.out.println("INTERNET UNAVAILABLE");
}
}
你可以把你的逻辑if语句里面。
文章来源: android.net.conn.CONNECTIVITY_CHANGE broadcast receiver not fires in JellyBean for VPN connection and disconnection