(1)ConnectivityManager
在Android中,ConnectivityManager類代表網絡連接服務,它被用來監控網絡連接狀態,配置失效重連,並控制網絡天線等。獲取Connectivity Manager實例的方法是使用getSystemService,並指定Context.CONNECTIVITY_SERVICE作為參數,代碼片段如下:
[java]Connectivity Manager在較高層面提供了管理可用網絡連接的接口,使用getActiveNetworkInfo和getNetworkInfo函數可以查詢獲取NetworkInfo對象,該對象包含了當前活動網絡連接或者指定類型的不可用網絡連接的詳細信息。
1.1)設置首選網絡
當任何認證的應用程序請求網絡連接時,Android都會優先嘗試使用首選網絡連接。設置首選網絡連接的函數是setNetworkPreference,代碼片段如下:
[java]當首選網絡連接不可用或者連接丟失時,Android將自動嘗試使用第二優先連接類型。
1.2)監控網絡連接
ConnectivityManager最常用的一個功能就是當網絡連接狀態改變時通知應用程序,這是通過應用程序實現自己的Broadcast Receiver來監聽ConnectivityManager.CONNECTIVITY_ACTION類型的intent來實現的。這個intent提供了以下幾種extra來進一步明確發生改變的網絡狀態:
1)ConnectivityManager.EXTRA_IS_FAILOVER:值為true說明當前的連接是首選網絡失效重連後的連接;
2)ConnectivityManager.EXTRA_NO_CONNECTIVITY:值為true表示當前設備沒有連接到網絡;
3)ConnectivityManager.EXTRA_REASON:如果當前的廣播代表網絡失效,則這個值包含了連接失效的原因描述;
4)ConnectivityManager.EXTRA_NETWORK_INFO:返回NetworkInfo對象,包含了當前連接事件相關的網絡詳細信息;
5)ConnectivityManager.EXTRA_OTHER_NETWORK_INFO:在一個網絡斷開連接時,這個值返回NetworkInfo對象,包含了可能的網絡失效重連的詳細信息;