查找是否已连接到特定的WiFi

时间:2015-09-20 08:40:00

标签: android

我一直在尝试创建一个应用程序,可以识别我的手机何时连接到所需的网络,当它出现时,它会向变量添加一个数字并执行诸如启动新应用之类的任务。我环顾四周,没有找到一个好的答案 此外,我已经检查了android文档,但我还没有弄清楚如何做到这一点。
我知道通过使用isConnected方法,我可以知道我是否连接到WiFi网络,但它并没有告诉我它是否是我想要的。
在这方面,我已经读过,可以通过找到网络的mac地址或bssid来实现这一点。 , 使用AIDE在Android上进行P.s编码

提前致谢!!

2 个答案:

答案 0 :(得分:0)

您应首先从路由器等处找到您的mac地址。
接下来,您在Android设备上过滤它:
1. Can I find the MAC address of my Access point in Android?
2. Get MAC Address without connect to WiFi
一旦你设法做到这一点,接下来你可以执行你想要的操作。

答案 1 :(得分:0)

您正在寻找的是呼叫广播接收器。基本上,您创建一个自定义广播接收器,将接收某些操作的消息。您在意图过滤器中定义这些操作:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);

然后在此意图过滤器上注册您的接收器:

registerReceiver(wifiWatcher, intentFilter);

并且您的接收器将实现onReceive方法:

public void onReceive( Context context, Intent intent )

ConnectivityManager conMngr = (ConnectivityManager)this.getSystemService(this.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = conMngr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  String ssid = null;
  NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  if (networkInfo.isConnected()) {
    final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
    if (connectionInfo != null && !StringUtil.isBlank(connectionInfo.getSSID())) {
      ssid = connectionInfo.getSSID();
    }
  }

好吧,如果正确的SSID

,请按照自己的意愿行事
if (ssid!=null && ssid.equals(mySSID){
//DO
}

为此,您需要在清单中添加这些权限:

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