如何判斷軟件程序是否聯(lián)網(wǎng) 聯(lián)網(wǎng)狀態(tài)提示信息Android實現(xiàn)
在項目中,經(jīng)常需要判斷是否有網(wǎng)絡連接。最近學習了如何判斷軟件是否聯(lián)網(wǎng),如果沒有聯(lián)網(wǎng),彈出提示信息,連接網(wǎng)絡。
效果:
(1)聯(lián)網(wǎng)情況下:

(2)不聯(lián)網(wǎng)情況下:

(3)點擊“檢測設置”:

源碼下載:http://xiazai.jb51.net/201605/yuanma/MyApplication(jb51.net).rar
判斷我們的軟件是否聯(lián)網(wǎng),看代碼吧:
/**
* 檢測網(wǎng)絡連接
*
* @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),彈出提示框,提示設置網(wǎng)絡連接:
/**
* 提示設置網(wǎng)絡連接對話框
*
* @param context
*/
public void showNetDialog(final Context context) {
mMaterialDialog = new MaterialDialog(context)
.setMessage("世界上最遙遠的距離就是沒網(wǎng)")
.setPositiveButton("檢查設置", 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)絡,哈哈",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();
}
/**
* 點擊事件
*
* @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)絡,哈哈",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)絡檢測
* Created by GXS on 2016/5/13.
*/
public class CheckNetWork {
private MaterialDialog mMaterialDialog;
/**
* 檢測網(wǎng)絡連接
*
* @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;
}
/**
* 提示設置網(wǎng)絡連接對話框
*
* @param context
*/
public void showNetDialog(final Context context) {
mMaterialDialog = new MaterialDialog(context)
.setMessage("世界上最遙遠的距離就是沒網(wǎng)")
.setPositiveButton("檢查設置", 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="測試"/>
</RelativeLayout>
注意:需要在清單文件AndroidManifest.xml中加入
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android獲取apk程序簽名信息代碼示例
- Android實現(xiàn)獲取應用程序相關(guān)信息列表的方法
- Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)
- Android實現(xiàn)整理PackageManager獲取所有安裝程序信息
- Android編程實現(xiàn)捕獲程序異常退出時的錯誤log信息功能詳解
- Android ApplicationInfo 應用程序信息的詳解
- Android編程獲取APP應用程序基本信息輔助類【APP名稱、包名、圖標,版本號等】
- Android獲取手機型號/系統(tǒng)版本號/App版本號等信息實例講解
- Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
相關(guān)文章
Android自定義view實現(xiàn)電影票在線選座功能
這篇文章主要為大家詳細介紹了Android自定義view實現(xiàn)選座功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
Android UI實現(xiàn)SlidingMenu側(cè)滑菜單效果
這篇文章主要為大家詳細介紹了Android UI實現(xiàn)SlidingMenu側(cè)滑菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
Android如何通過Retrofit提交Json格式數(shù)據(jù)
本篇文章主要介紹了Android如何通過Retrofit提交Json格式數(shù)據(jù),具有一定的參考價值,有興趣的可以了解一下2017-08-08
詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配
由于各系統(tǒng)版本的限制,沉浸式狀態(tài)欄對系統(tǒng)有要求,本篇文章主要介紹了詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配,非常具有實用價值,需要的朋友可以參考下2018-05-05

