首先,您需要定義一個可以偵聽網絡更改事件的廣播接收器。
public class NetworkChangeReceiver extends BroadcastReceiver {
public static final String TYPE_NET_CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";
@Override
public void onReceive(final Context context, Intent intent) {
if (TYPE_NET_CONNECTIVITY_CHANGE.equals(intent.getAction())) {
boolean connected = NetworkStatus.isNetworkConnected(context);
if (connected) {
//Connected
} else {
//Disconnected
}
}
}
}
現在註冊您的接收器清單中,如: -
<application
...>
<receiver android:name=". NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.wifi.WifiManager.WIFI_STATE_CHANGED_ACTION" />
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
來源
2017-02-20 04:15:27
Avi
你檢查?它真的有用嗎?我今天不能檢查,因爲我今天離開了我的家,你能確認一下嗎?還有,爲什麼要聲明權限?另外,在onReceive中,我們沒有聽取android.net.wifi.WifiManager.WIFI_STATE_CHANGED_ACTION,那麼它將如何響應WiFi連接/斷開連接? –
我在我現有的應用程序中使用它,它正在工作。我假設你已經提供了Internet權限,因爲沒有它你不會聽任何事件。 – Avi
嗨,AVI,實際上,我只需要檢測到無線網絡連接或斷開連接,那麼爲什麼互聯網和電話的權限? –