android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件?

问题描述

android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件?

如题,手机A开了热点,手机B打开Wifi连接上了A。那么当B关闭Wifi按钮时,A怎么实时感知到。有没有实现的代码、方法。求大神们解救哦哦!!!!!

解决方案

// 当网络变化的时候系统会发出一个广播 Broadcast,只要在程序中注册一个广播接收器 BroadcastReceiver,并在 IntentFilter 中添加相应的过滤,这样一旦网络有变化,程序就能监听到
public static final String CONNECTIVITY_CHANGE_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
private void registerDateTransReceiver() {
Log.i("Phone Link", "register receiver " + CONNECTIVITY_CHANGE_ACTION);
IntentFilter filter = new IntentFilter();
filter.addAction(CONNECTIVITY_CHANGE_ACTION);
filter.setPriority(1000);
registerReceiver(new MyReceiver(), filter);
}

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i("Phone Link", "PfDataTransReceiver receive action " + action);
if(TextUtils.equals(action, CONNECTIVITY_CHANGE_ACTION)){ // 网络变化的时候会发送通知
Log.i("Phone Link", "网络变化了");
return;
}
}

// 当网络变化时,从有网到没网也会发广播,接收到广播的时候要判断当前网络是可用还是不可用状态
public static NetworkInfo getActiveNetwork(Context context){
if(context == null)
return null;
ConnectivityManager mConnMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(mConnMgr == null)
return null;
NetworkInfo aActiveInfo = mConnMgr.getActiveNetworkInfo(); // 获取活动网络连接信息
return aActiveInfo;
}

解决方案二:

Android监听网络变化

注册方式:
1.
Xml代码 收藏代码
android:name="包名.ConnectionChangeReceiver"
android:label="NetworkConnection" >

2.
Java代码 收藏代码
/*

  • 手动注册网络状态变化,或在清单文件配置。
    */

    private void registerNetStateReceiver() {

    Log.i("--bxm register netstate receiver...");

    mConnectivityReceiver = new ConnectionChangeReceiver();

    IntentFilter filter = new IntentFilter();

    filter.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);

    registerReceiver(mConnectivityReceiver, filter);

    }

    其中 ConnectionChangeReceiver类为:
    Java代码 收藏代码
    public class ConnectionChangeReceiver extends BroadcastReceiver {

    private final static NetConnectionStateMgr dataStateMgr = NetConnectionStateMgr.getInstance();

    @Override

    public void onReceive(Context context, Intent intent) {

    Log.i("--ConnectivityReceiver.onReceive()...");

    String action = intent.getAction();

    Log.i("--action=" + action);

    ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);  
    
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();  
    
    if (networkInfo != null) {
        Log.i("--Network Type  = " + networkInfo.getTypeName());
        Log.i("--Network State = " + networkInfo.getState());
        if (networkInfo.isConnected()) {
            Log.i("--bxm Network connected");
            dataStateMgr.setDataState(NetConnectionStateMgr.DATA_CONNECTIONED);
        }
    } else {
        Log.e("--bxm Network unavailable");
        dataStateMgr.setDataState(NetConnectionStateMgr.DATA_CONNECTION_UNAVAILABLE);
    }  
    
    dataStateMgr.notifyDataSetChanged();
    

    }

    }

    上面的NetConnectionStateMgr是自己实现的观察者类,方便用而已。

注意权限配置:

解决方案三:

注意权限配置:

解决方案四:

注意权限配置:
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"

上面发的都没有显示出来,所以重发了

时间: 2025-01-01 02:08:02

android 代码怎么实时监控连接当前wifi热点的设备的连接或断开事件?的相关文章

android编程实现设置、打开wifi热点共享供他人连接的方法_Android

本文实例讲述了android编程实现设置.打开wifi热点共享供他人连接的方法.分享给大家供大家参考,具体如下: 用过快牙的朋友应该知道它们在两天设备之间传输文件的时候使用的是wifi热点,然后另一台便连接这个热点再进行传输.快牙传输速度惊人应该跟它的这种机制有关系吧.不知道它的搜索机制是怎样的,但我想应该可以通过热点的名字来进行判断吧.下面我们就来探讨一下如何自动创建一个wifi热点吧 创建wifi热点首先需要手机支持,建议开发的哥们整个好点的手机,我们公司那些个山寨设备,几近有一半是不支持热

系统-【android】当手机开启了一个wifi热点以后,会接收到什么广播

问题描述 [android]当手机开启了一个wifi热点以后,会接收到什么广播 写了一个开启wifi热点的代码,想通过接收开启wifi热点后系统发出的广播来判断开启结果,不知道这个广播的action是什么 解决方案 // 当网络变化的时候系统会发出一个广播 Broadcast,只要在程序中注册一个广播接收器 BroadcastReceiver,并在 IntentFilter 中添加相应的过滤,这样一旦网络有变化,程序就能监听到 public static final String CONNECT

Win8.1系统连接手机WiFi热点发生蓝屏怎么办

  最近有使用win8.1系统的用户反映,电脑连接手机WiFi热点后出现蓝屏情况,这是怎么回事呢?该如何解决呢?下面就给大家分享此问题的解决方法. 原因分析: Intel的网卡驱动中的无线信号传输协议(802.11n模式)与某些手机WIFI热点的信号模式冲突导致,与无线网卡驱动的版本没多少关系. 方法如下: 1.按Win+X键,或右击开始按钮,在弹出的菜单中选择设备管理器; 2.在设备管理器中找到无线网卡并双击打开,切换到高级项,将802.11n模式的值修改为"已禁用",点击确定,之后

1970“变种”bug连WiFi热点iOS设备会变砖?

据悉,该漏洞和此前"1970"的bug有关系,但不完全一样. 威锋网讯,你还记得将 iOS 设备系统时间调至 1970.1.1 会让设备变砖的 bug 么?尽管苹果在 iOS 9.3 中已经将这个 bug 修复,但据安全研究员指出,他们发现了一个 1970 的"变种"bug,只要 iOS 设备连接上了一个 WiFi 热点,设备就可能会变砖. 据 KrebsonSecurity 指出,该系统漏洞同时利用了在 iOS 中发现的两个弱点.第一个弱点是 iOS 设备会自动连

wifi热点创建和自动连接

1.wifi热点的创建 /** * 创建wifi热点 * @param ssid 热点信息 * @param passwd 密码 * @author wanghongbin */ public void startWifiAp(Context context, String ssid, String passwd) { //关闭wifi closeWifi(); //关闭热点 closeWifiAp(); //激活热点 invokeWifiAp(ssid, passwd); } /** * 激活

免费WiFi上网连接神器WiFi万能钥匙

如果你经常出门在外,你会发现各种咖啡店.商场或者在机场等地方都有公共的WiFi热点,图标如下,但很可惜 它们很多都是加了密码的,不去消费一般都不能免费使用.不过,现在你有了一个好帮手-WiFi万能钥匙!WiFi logoWiFi万能钥匙是由盛大出品的一款能自动获取你周边免费WiFi热点信息并建立连接的智能手机软件,它的云端数据库保存了数百万由用户共享出来的WiFi热点的数据与密码,让你随时轻松地接入到身边的公共无线网络上网,而不必再到处去问人家要密码了!对于商务人士或需要移动上网的用户,相信它能

ios再现漏洞 连接到已知WiFi热点也会中招

据悉,该漏洞和此前"1970"的bug有关系,但不完全一样. 威锋网讯,你还记得将iOS设备系统时间调至1970.1.1会让设备变砖的 bug 么?尽管苹果在iOS 9.3中已经将这个bug修复,但据安全研究员指出,他们发现了一个 1970的"变种"bug,只要 iOS设备连接上了一个 WiFi 热点,设备就可能会变砖. ios再现漏洞 连接到已知WiFi热点也会中招 据 KrebsonSecurity 指出,该系统漏洞同时利用了在 iOS 中发现的两个弱点.第一个

win7笔记本上如何设置wifi热点

随着无线互联网技术的高速发展,WIFI已逐步成为人们使用较为广泛的无线宽带.在一些情况下,大家可能会需要建立自己的WiFi热点来共享网络连接.现在让我们来看看如何使用Connectify[官方下载]来实现这一点. 也许在有些地方只有一个网线接口(宾馆.会议室 等等)而你却需要和别人或其他设备共享网络连接.Connectify就是能让你的Windows7计算机实现这一功能的免费软件. 注意:Connectify仅支持Windows7家庭版及更高版本,不支持入门版操作系统 only works wi

小米盒子怎么设置wifi热点

  1.首先将小米盒子与电视连接好,并连接好网线,然后进入小米盒子的应用商店,然后再选择进入"应用管理",如下图所示: 2.进入应用管理后,我们再进入"系统应用",接下来在进入小米盒子"设置",并选择打开设置,如下图和所示: 3.最后在"设置"界面的"更多"选项中,找到"便携式热点",然后再进入"便携式WLAN热点"设置,最后自然就是进入"设置WLAN热点&