Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
http://www.mobiletuts.me
獲取網絡連接狀態
隨著3G和Wifi的推廣,越來越多的Android應用程序需要調用網絡資源,檢測網絡連接狀態也就成為網絡應用程序所必備的功能。
Android平臺提供了ConnectivityManager??類,用于網絡連接狀態的檢測。
Android開發文檔這樣描述ConnectivityManager?的作用:
?
Class that answers queries about the state of network connectivity. It also notifies applications when network connectivity changes. Get an instance of this class by callingContext.getSystemService(Context.CONNECTIVITY_SERVICE).
The primary responsibilities of this class are to:
{
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile 3G Data Network
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
txt3G.setText(mobile.toString()); //顯示3G網絡連接狀態
//wifi
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
txtWifi.setText(wifi.toString()); //顯示wifi連接狀態
}
?
注:
根據Android的安全機制,在使用ConnectivityManager時,必須在AndroidManifest.xml中添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 否則無法獲得系統的許可。
運行結果(關閉3G及wifi網絡連接的狀態下)
調用Android手機的網絡配置界面
使用過Android手機上的手機QQ的朋友,應該知道,當QQ啟動時,如果沒有有效的網絡連接,QQ會提示轉入手機的網絡配置界面。這是如何實現的呢。其實很簡單啦
privatevoid checkNetworkInfo(){
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile 3G Data Network
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
txt3G.setText(mobile.toString());
//wifi
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
txtWifi.setText(wifi.toString());
//如果3G網絡和wifi網絡都未連接,且不是處于正在連接狀態 則進入Network Setting界面 由用戶配置網絡連接
if(mobile==State.CONNECTED||mobile==State.CONNECTING)
return;
if(wifi==State.CONNECTED||wifi==State.CONNECTING)
return;
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//進入無線網絡配置界面
//startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //進入手機中的wifi網絡設置界面
}
運行結果(關閉3G及wifi網絡連接的狀態下),程序轉入無線網絡配置界面
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//進入無線網絡配置界面如果調用
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接進入手機中的wifi網絡設置界面則直接進入手機中的wifi網絡設置界面
在wifi網絡連接后 運行該程序
我們可以看到 wi-fi 狀態為已連接(CONNECTED).
我的聯系方式:
http://www.mobiletuts.me
或
mobiletuts.me#gmail.com (replace #with @)
?
轉載于:https://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html
總結
以上是生活随笔為你收集整理的Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net读取xml
- 下一篇: 天啊!我的xbox360突然不读盘了。。