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