获取网络状态及跳转到网络设置界面

Android平台提供了ConnectivityManager 类,用于网络连接状态的检测。

在使用ConnectivityManager 时,必须在AndroidManifest.xml中添加访问网络状态的权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

MainActivity.java

package com.example.networksetting;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity {

    // 网络连接管理对象
    private ConnectivityManager connectivityManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取网络连接管理的对象
        connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    }

    @Override
    protected void onStart() {
        super.onStart();
        // 检测网络设置
        // 1.加入访问网络设置的权限
        // 2.获取网路连接
        // 3.获取可用网络的信息对象
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

        if (networkInfo != null) {
            Toast.makeText(this, "网络可用", 1).show();
        } else {
            new AlertDialog.Builder(this).setTitle("设置网路").setMessage("去设置网络")
                    .setPositiveButton("设置", new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            settingNetWork();
                        }
                    }).setNegativeButton("取消", new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(MainActivity.this, "取消设置网络的操作", 1)
                                    .show();
                        }
                    }).show();
        }
    }

    public void settingNetWork() {
        // 隐式意图
        Intent intent = new Intent();

        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory("android.intent.category.LAUNCHER");
        intent.setFlags(0x10200000);
        intent.setComponent(new ComponentName("com.android.settings",
                "com.android.settings.Settings"));
        startActivity(intent);
    }
}


演示效果:

① 当有网络时,进入该应用会Toast网络可用。

② 当没有网络时,进入该应用会弹出我们写好的对话框

点击设置按钮将执行settingNetWork()方法跳转到设置页面,这里发送了一个隐式意图。

思考activity的可视化生命周期,为什么要将代码写在onStart( )方法里呢?

时间: 2024-10-11 00:04:37

获取网络状态及跳转到网络设置界面的相关文章

android判断当前网络状态及跳转到设置界面

今天,想做这个跳转到网络设置界面, 刚开始用 intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 不料老是出现settings.WirelessSettings找不到(就是没法提示出来,显示红色底纹),我后来查了下资料,结果发现跟版本有关,我的是安卓4.3的,所以需要用                         intent = new Intent(android.provider.Settings.ACTION_WIRELES

AFN网络状态的时时监控以及网络的判断、

//3.判断网络状况    AFNetworkReachabilityManager *netManager = [AFNetworkReachabilityManager sharedManager];    [netManager startMonitoring];  //开始监听    [netManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){                if (

获取系统的网络状态与无线网的信号强度

一台电脑,有时通过有线网连接网络(调制解调器/局域网),如有网卡也可连接wifi.那么如何获取WLAN是否连接,和相应的信号强度呢? 就以下俩点: 获取电脑连网状态 获取无线网络的信号强度 获取电脑连网状态 在看下文之前,可以浏览:通过InternetGetConnectedState方法对网络状态的获取 如上InternetGetConnectedState方法介绍中 dwReversed必须设置为0 通过输出值lpdwFlags可以获取当前网络连接的信息,通过拼装对比可以得到当前连接的网络类

OC - 18.监听iPhone的网络状态

使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic, strong) Reachability *reachability; 注册为通知中心的的观察者 // 在通知中心注册观察者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkS

iOS网络-06-监听Iphone的网络状态

使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic, strong) Reachability *reachability; 注册为通知中心的的观察者 // 在通知中心注册观察者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkS

(一二五)手机网络状态的监听

对于一些需要与服务器进行长连接的App,需要对网络状态进行监控,当网络不佳时及时提醒用户,从而提高用户体验.通过苹果自带的框架和Reachability类可以实现网络状态改变的监听. 要实现网络监听,按照下面的步骤进行. ①导入SystemConfiguration框架. ②通过Xcode的帮助文档搜索Reachability,打开样例工程,将其中的Reachability类的代码拷贝到自己的工程,有两个文件,如下图所示. ③创建对象,保存对象,添加监听和启动监听. 注意reachability

iOS模拟各种网络状态

在iOS开发中我们有在各种不同网络状态下测试app运行状态的需求.苹果给我们提供了在模拟器和真机状态下,模拟各种网络状态的软件. 在模拟器中 苹果提供的模拟网络状态的工具官网地址下载该工具需要登录Apple ID,根据需求选择不同的版本. 选择如图所示,点击Network Link Conditioner.prefPane运行 在系统偏好设置中出现了该工具的选项 不同选项对应的网络状态. Preset Profiles 预设网络状况 配置 说明 100%Loss 全丢包 3G 3G网络 DSL

Reachability检测网络状态

在现在的项目开发当中,监测网络是否正常非常有必要的.Reachability检测网络可以检测WiFi 3G 无线局域网 使用Reachability 下载Reachability,将Reachability添加到项目当中,在要检测网的类当中添加 #import <Reachability.h> //  开启网络状态的监听 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reachabilityCh

Android判断网络类型以及监控网络状态

一.判断网络类型是wifi,还是3G,还是2G网络 ConnectivityManager connectMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectMgr.getActiveNetworkInfo(); 一.判断网络是否是wifi,在判断之前一定要进行的非空判断,如果没有任何网络 连接info ==null info.getT