广告
返回顶部
首页 > 资讯 > 移动开发 >如何判断软件程序是否联网 联网状态提示信息Android实现
  • 298
分享到

如何判断软件程序是否联网 联网状态提示信息Android实现

程序软件Android 2022-06-06 08:06:05 298人浏览 八月长安
摘要

在项目中,经常需要判断是否有网络连接。最近学习了如何判断软件是否联网,如果没有联网,弹出提示信息,连接网络。 效果: (1)联网情况下:   (2)不联网情况下:

项目中,经常需要判断是否有网络连接。最近学习了如何判断软件是否联网,如果没有联网,弹出提示信息,连接网络。

效果:

(1)联网情况下:

 

(2)不联网情况下:

这里写图片描述

(3)点击“检测设置”:

这里写图片描述

源码下载:http://xiazai.jb51.net/201605/yuanma/MyApplication(jb51.net).rar

判断我们的软件是否联网,看代码吧:


  
  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;
  }

如果没有联网,弹出提示框,提示设置网络连接:


  
  public void showNetDialog(final Context context) {
    mMaterialDialog = new MaterialDialog(context)
    .setMessage("世界上最遥远的距离就是没网")
    .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();
  }

怎么做判断处理:


  
  private void checkNet() {
    if(!mCheckNetWork.isNetworkAvailable(getApplication())){
      mCheckNetWork.showNetDialog(MainActivity.this);
    }else {
      Toast.makeText(MainActivity.this,
      "有网络,哈哈",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();
  }
  
  @Override
  public void onClick(View view) {
    switch (view.getId()){
      case R.id.btn_check:
        checkNet();
    }
  }
  
  private void checkNet() {
    if(!mCheckNetWork.isNetworkAvailable(getApplication())){
      mCheckNetWork.showNetDialog(MainActivity.this);
    }else {
      Toast.makeText(MainActivity.this,
      "有网络,哈哈",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;

public class CheckNetWork {
  private MaterialDialog mMaterialDialog;
  
  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;
  }
  
  public void showNetDialog(final Context context) {
    mMaterialDialog = new MaterialDialog(context)
    .setMessage("世界上最遥远的距离就是没网")
    .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"/>
您可能感兴趣的文章:Android获取apk程序签名信息代码示例Android实现获取应用程序相关信息列表的方法Android开发之在程序中时时获取loGCat日志信息的方法(附demo源码下载)Android实现整理PackageManager获取所有安装程序信息Android编程实现捕获程序异常退出时的错误log信息功能详解Android ApplicationInfo 应用程序信息的详解Android编程获取APP应用程序基本信息辅助类【APP名称、包名、图标,版本号等】Android获取手机型号/系统版本号/App版本号等信息实例讲解Android开发获取系统中已安装程序信息的方法


--结束END--

本文标题: 如何判断软件程序是否联网 联网状态提示信息Android实现

本文链接: https://www.lsjlt.com/news/24968.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作