Android實踐--監測網路狀態

來源:互聯網
上載者:User

標籤:android   網路狀態   wifi   3g   

Android 監測網路狀態     我們在使用Android手機時候,一些APP需要網路環境才能運行,所以手機需要可用的網路,不管是2G、3G或者WIFI,甚至有一些比較耗流量的APP只能在WIFI的環境下運行,或者提供使用者自行選擇是否只能在WIFI環境下運行,作為使用者貌似後者體驗更好,那麼作為開發人員,我們僅僅需要幾步就能給使用者這種體驗。-----------------------------------------------------------------------------------------------------------------------------1. 許可權添加:APP需要連網,以及需要訪問網路狀態,所以在AndroidManifest.xml中添加許可權。
    <uses-permission android:name= "android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2. 狀態擷取:行動電話通訊有資料(2G/3G/4G)串連、WIFI串連兩種狀態,可以區分擷取和笼統的擷取。
/** * 檢查WIFI是否串連 *  * @author Ysjian * @date 2014-5-9 * @return 如果串連了返回true,否則返回false */public boolean isWifiConnected() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);return wifiInfo != null;}/** * 檢查行動電話通訊(4G/3G/2G)是否串連 *  * @author Ysjian * @date 2014-5-9 * @return 如果串連了返回true,否則返回false */public boolean isMobileNetworkConnected() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mobileNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);return mobileNetworkInfo != null;}/** * 檢查是否有可用網路 *  * @author Ysjian * @date 2014-5-9 * @return 存在WIFI和行動數據任意可用網路返回true,否則返回false */public boolean hasActivityNetwork() {ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);return connectivityManager.getActiveNetworkInfo() != null;}
3. 跳轉設定:如果沒有網路,跳轉到網路設定介面,可以根據具體需求調用上面的三個方法之一來判斷網路狀態。
if (!hasActivityNetwork()) {       AlertDialog.Builder builder = new AlertDialog.Builder(this );       builder. setTitle( "沒有可用的網路" )                   .setMessage( "是否對網路進行設定?" )                   .setPositiveButton( "是" ,                         new DialogInterface.OnClickListener() {                                     @Override                                     public void onClick(DialogInterface dialog,int which) {                                               Intent intent = null ;                                               intent = newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                                               startActivity(intent);                                     }                     })                    .setNegativeButton( "否" ,                           new DialogInterface.OnClickListener() {                                   @Override                                    public void onClick(DialogInterface dialog, int which) {                                               dialog.dismiss();                                     }                           }).show();}
文章來源:http://blog.csdn.net/ysjian_pingcx/article/details/25461053

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.