溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android網絡連接相關廣播

發布時間:2020-10-08 14:20:55 來源:網絡 閱讀:1607 作者:年少的風 欄目:移動開發


新建一個類繼承BroadcastReceiver,用于接收廣播,并作相應的處理

class NetChangeReceiver extends BroadcastReceiver {
	
    @Override
    public void onReceive(Context context, Intent intent) {
		
        String action = intent.getAction();
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            System.out.println("網絡狀態更改");
        }else if (action.equals(EthernetManager.ETHERNET_STATE_CHANGED_ACTION)) {
            System.out.println("網線狀態更改");
        }
    }
}

在AndroidMenifest.xml的<application></application>標簽中注冊廣播接收過濾條件

<!-- 網絡更改廣播 -->
<receiver android:name="com.coship.entropic.factorytest.receiver.NetChangeReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

<!-- 網線狀態改變廣播 -->
<receiver android:name="com.coship.entropic.factorytest.receiver.NetChangeReceiver">
    <intent-filter>
        <action android:name="android.net.ethernet.ETHERNET_STATE_CHANGED" />
    </intent-filter>
</receiver>


接收廣播只需要以上兩個步驟,當然還需要配置權限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

完成之后,上面的兩個System.out.println();輸出內容在控制臺是看不到的,因為網絡狀態更改會導致android設備與電腦的連接斷開,故而控制臺不會有輸出。如果要測試是否能夠接收到廣播,可以采用其他方式檢測,比如

handler.sendEmptyMessage(0);

通知界面彈出信息提示,或者直接打印到屏幕上顯示




上面的內容網上很多資料,僅僅一個需要指出的是

<action android:name="android.net.ethernet.ETHERNET_STATE_CHANGED" />

由于這個用的比較少,所以網上的資料也很少。下面羅列一下有線連接相關的ACTION

ConnectivityManager.CONNECTIVITY_ACTION    //網絡狀態更改
//對應action.equals(ConnectivityManager.CONNECTIVITY_ACTION)


EthernetManager.ETHERNET_START_INTERFACE_ACTION
EthernetManager.ETHERNET_STATE_CHANGED_ACTION
EthernetManager.ETHERNET_STOP_INTERFACE_ACTION
EthernetManager.NETWORK_CONNECTED_ACTION
EthernetManager.NETWORK_DISCONNECTED_ACTION


EthernetManager.NETWORK_STATE_CHANGED_ACTION    //網線狀態更改
//對應action.equals(EthernetManager.ETHERNET_STATE_CHANGED_ACTION)
//可以相應網線的熱插拔事件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女