public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo().isConnectedOrConnecting();}
我在return cm.getActiveNetworkInfo
上获得了一个nullpointer。
我试过this.getSystemService
但也没用。也许是因为我的活动扩展了我创造的超级活动,而且我正在错误地抓住背景......?我也试过了getBaseContext()
答案 0 :(得分:1)
在返回线上将两个方法链接在一起,你确定ConnectivityManager
返回null吗?当没有活动网络时,ConnectivityManager.getActiveNetworkInfo()
返回null
而不是有效NetworkInfo
对象是完全有效的。如果这回来null
,那么调用NetworkInfo.isConnectedOrConnecting()
就是抛出异常。
答案 1 :(得分:0)
猜猜#1:
你的清单中有这些吗?
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE">