• Android 监测手机联网状态 wifi、移动数据流量、无联网状态


    手机当完成联网时会发送一个广播,我们只要创建一个广播接收者即可,代码如下:

    package com.example.NetworkChangeReceiver2;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.widget.Toast;
    
    /**
     * Created by Heyiyong on 2014-4-20 下午2:23.
     */
    public class NetworkChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
            if (activeNetworkInfo == null) {
                Toast.makeText(MyActivity.instance, "当前无网络连接!", 1).show();
            }
            if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                Toast.makeText(MyActivity.instance, "wifi连接成功!", 1).show();
                return;
            }
            if (activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {//当前的connect不是wifi,并且是移动数据
                Toast.makeText(MyActivity.instance, "移动数据流量连接!", 1).show();
                return;
            }
        }
    }

    MyActivity.java

    package com.example.NetworkChangeReceiver2;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MyActivity extends Activity {
        public static MyActivity instance;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            instance = this;
        }
    }

    注意:不要忘了添加权限:

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

    注册广播接收者:

            <receiver
                    android:name=".NetworkChangeReceiver"
                    android:label="NetworkConnection" >
                <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                </intent-filter>
            </receiver>
  • 相关阅读:
    Qt 无边框窗体改变大小 完美实现
    深入Windows窗体原理及控件重绘技巧
    EF里Guid类型数据的自增长、时间戳和复杂类型的用法
    Entity Framework中的Identity map和Unit of Work模式
    使用SQLite数据库和Access数据库的一些经验总结
    实现Avl平衡树
    使用Ajax
    接口和类 反射的差异性
    Guacamole 介绍
    依赖注入(DI)和Ninject
  • 原文地址:https://www.cnblogs.com/wuyou/p/3676560.html
Copyright © 2020-2023  润新知