3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以使用ConnectivityManager來(lái)檢查網(wǎng)絡(luò)狀態(tài)。
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED?
? ? || conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ) {
? ? // notify user you are online
}
else if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED?
? ? || conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) {
? ? // notify user you are not online
}
請(qǐng)注意,常量ConnectivityManager.TYPE_MOBILE和ConnectivityManager.TYPE_WIFI表示連接類型,并且這兩個(gè)值并不詳盡。
另外,請(qǐng)確保您具有監(jiān)視網(wǎng)絡(luò)狀態(tài)所需的權(quán)限。您需要將此權(quán)限添加到您的AndroidManifest.xml中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
在任一點(diǎn)上只能有一個(gè)連接處于活動(dòng)狀態(tài)。因此,一個(gè)簡(jiǎn)單的答案是:
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
// notify user you are online
} else {
// notify user you are not online
}
它還適合任何新型網(wǎng)絡(luò),例如ConnectivityManager#TYPE_WIMAX
另外,請(qǐng)確保您具有監(jiān)視網(wǎng)絡(luò)狀態(tài)所需的權(quán)限。您需要將此權(quán)限添加到您的AndroidManifest.xml中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- 3 回答
- 0 關(guān)注
- 582 瀏覽
添加回答
舉報(bào)