如何判斷軟件程序是否聯(lián)網(wǎng) 聯(lián)網(wǎng)狀態(tài)提示信息Android實(shí)現(xiàn)
在項(xiàng)目中,經(jīng)常需要判斷是否有網(wǎng)絡(luò)連接。最近學(xué)習(xí)了如何判斷軟件是否聯(lián)網(wǎng),如果沒有聯(lián)網(wǎng),彈出提示信息,連接網(wǎng)絡(luò)。
效果:
(1)聯(lián)網(wǎng)情況下:
(2)不聯(lián)網(wǎng)情況下:
(3)點(diǎn)擊“檢測(cè)設(shè)置”:
源碼下載:http://xiazai.jb51.net/201605/yuanma/MyApplication(jb51.net).rar
判斷我們的軟件是否聯(lián)網(wǎng),看代碼吧:
/** * 檢測(cè)網(wǎng)絡(luò)連接 * * @param con * @return */ public boolean isNetworkAvailable(Context con) { ConnectivityManager cm = (ConnectivityManager) con .getSystemService(Context.CONNECTIVITY_SERVICE); if (cm == null) return false; NetworkInfo netinfo = cm.getActiveNetworkInfo(); if (netinfo == null) { return false; } if (netinfo.isConnected()) { return true; } return false; }
如果沒有聯(lián)網(wǎng),彈出提示框,提示設(shè)置網(wǎng)絡(luò)連接:
/** * 提示設(shè)置網(wǎng)絡(luò)連接對(duì)話框 * * @param context */ public void showNetDialog(final Context context) { mMaterialDialog = new MaterialDialog(context) .setMessage("世界上最遙遠(yuǎn)的距離就是沒網(wǎng)") .setPositiveButton("檢查設(shè)置", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = null; try { @SuppressWarnings("deprecation") String sdkVersion = android.os.Build.VERSION.SDK; if (Integer.valueOf(sdkVersion) > 10) { intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); } else { intent = new Intent(); ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings"); intent.setComponent(comp); intent.setAction("android.intent.action.VIEW"); } context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } mMaterialDialog.dismiss(); } }).setNegativeButton("取消", new View.OnClickListener() { @Override public void onClick(View v) { mMaterialDialog.dismiss(); } }); mMaterialDialog.show(); }
怎么做判斷處理:
/** * 判斷是否聯(lián)網(wǎng) */ private void checkNet() { if(!mCheckNetWork.isNetworkAvailable(getApplication())){ mCheckNetWork.showNetDialog(MainActivity.this); }else { Toast.makeText(MainActivity.this, "有網(wǎng)絡(luò),哈哈",Toast.LENGTH_SHORT).show(); } }
具體代碼如下:
MainActivity.java
package com.bzu.gxs.chectnetwork; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements View.OnClickListener{ private CheckNetWork mCheckNetWork =new CheckNetWork(); private Button btn_check; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } /** * 點(diǎn)擊事件 * * @param view */ @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn_check: checkNet(); } } /** * 判斷是否聯(lián)網(wǎng) */ private void checkNet() { if(!mCheckNetWork.isNetworkAvailable(getApplication())){ mCheckNetWork.showNetDialog(MainActivity.this); }else { Toast.makeText(MainActivity.this, "有網(wǎng)絡(luò),哈哈",Toast.LENGTH_SHORT).show(); } } /** * 初始化 */ private void init() { btn_check = (Button) findViewById(R.id.btn_check); btn_check.setOnClickListener(this); } }
CheckNetWork.java
package com.bzu.gxs.chectnetwork; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.media.browse.MediaBrowser; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.view.View; import me.drakeet.materialdialog.MaterialDialog; /** * 網(wǎng)絡(luò)檢測(cè) * Created by GXS on 2016/5/13. */ public class CheckNetWork { private MaterialDialog mMaterialDialog; /** * 檢測(cè)網(wǎng)絡(luò)連接 * * @param con * @return */ public boolean isNetworkAvailable(Context con) { ConnectivityManager cm = (ConnectivityManager) con .getSystemService(Context.CONNECTIVITY_SERVICE); if (cm == null) return false; NetworkInfo netinfo = cm.getActiveNetworkInfo(); if (netinfo == null) { return false; } if (netinfo.isConnected()) { return true; } return false; } /** * 提示設(shè)置網(wǎng)絡(luò)連接對(duì)話框 * * @param context */ public void showNetDialog(final Context context) { mMaterialDialog = new MaterialDialog(context) .setMessage("世界上最遙遠(yuǎn)的距離就是沒網(wǎng)") .setPositiveButton("檢查設(shè)置", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = null; try { @SuppressWarnings("deprecation") String sdkVersion = android.os.Build.VERSION.SDK; if (Integer.valueOf(sdkVersion) > 10) { intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); } else { intent = new Intent(); ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings"); intent.setComponent(comp); intent.setAction("android.intent.action.VIEW"); } context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } mMaterialDialog.dismiss(); } }).setNegativeButton("取消", new View.OnClickListener() { @Override public void onClick(View v) { mMaterialDialog.dismiss(); } }); mMaterialDialog.show(); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bzu.gxs.chectnetwork.MainActivity"> <Button android:id="@+id/btn_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測(cè)試"/> </RelativeLayout>
注意:需要在清單文件AndroidManifest.xml中加入
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android獲取apk程序簽名信息代碼示例
- Android實(shí)現(xiàn)獲取應(yīng)用程序相關(guān)信息列表的方法
- Android開發(fā)之在程序中時(shí)時(shí)獲取logcat日志信息的方法(附demo源碼下載)
- Android實(shí)現(xiàn)整理PackageManager獲取所有安裝程序信息
- Android編程實(shí)現(xiàn)捕獲程序異常退出時(shí)的錯(cuò)誤log信息功能詳解
- Android ApplicationInfo 應(yīng)用程序信息的詳解
- Android編程獲取APP應(yīng)用程序基本信息輔助類【APP名稱、包名、圖標(biāo),版本號(hào)等】
- Android獲取手機(jī)型號(hào)/系統(tǒng)版本號(hào)/App版本號(hào)等信息實(shí)例講解
- Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
相關(guān)文章
Android自定義view實(shí)現(xiàn)電影票在線選座功能
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)選座功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android實(shí)現(xiàn)下拉放大圖片松手自動(dòng)反彈效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)下拉放大圖片松手自動(dòng)反彈效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Android UI實(shí)現(xiàn)SlidingMenu側(cè)滑菜單效果
這篇文章主要為大家詳細(xì)介紹了Android UI實(shí)現(xiàn)SlidingMenu側(cè)滑菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Android如何通過Retrofit提交Json格式數(shù)據(jù)
本篇文章主要介紹了Android如何通過Retrofit提交Json格式數(shù)據(jù),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配
由于各系統(tǒng)版本的限制,沉浸式狀態(tài)欄對(duì)系統(tǒng)有要求,本篇文章主要介紹了詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05Android評(píng)論功能的實(shí)現(xiàn)過程
這篇文章為大家詳細(xì)介紹了Android評(píng)論功能的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08