我需要检测何时与特定WIFI网络建立网络连接.
例如:一旦你走进你的房子,你的手机拿起你的家庭WiFi网络,我想要一条通知说"你不在你的家庭网络,你想连接到你家吗?" 但我希望这只会发生在我特定的房子里.
我应该注意什么,我应该做些什么测试来确保它是我的特定家庭网络,而不是另一个网络?
我需要获得所有AP的BSSID(MAC).请在下面找到代码块.
List<WifiConfiguration> test = wifiManager.getConfiguredNetworks();
for(int k=0;k<test.size();k++){
Log.d("acheck", "test BSSID = "+test.get(k).BSSID);
Log.d("acheck", "test BSSID = "+test.get(k).BSSID);
}
Run Code Online (Sandbox Code Playgroud)
但是上面的代码块正确返回SSID但BSSID为null.我想用用户定义的SSID连接到最强的接入点.是否有任何API方法可以获得具有用户定义的SSID的最佳信号强度的AP.(在我的情况下,有许多SSID具有单个SSID且具有多个AP可用.)
我正在尝试扫描无线网络并在网上找到这个有用的来源.不幸的是它没有用,我不明白为什么.我的问题是,我不能等待10分钟的结果 - 我需要它们在几秒钟内,并考虑设置布尔变量等待假一旦得到结果....好吧,它运行永远..看起来没什么收到的.任何的想法 ?谢谢.
// -- Sample WiFi implementation - http://groups.google.com/group/android-developers/browse_thread/thread/f722d5f90cfae69
IntentFilter i = new IntentFilter();
i.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context c, Intent i){
// Code to execute when SCAN_RESULTS_AVAILABLE_ACTION event occurs
mWifiManager = (WifiManager) c.getSystemService(Context.WIFI_SERVICE);
wireless = mWifiManager.getScanResults(); // Returns a <list> of scanResults
waiting = false;
}
}
,i);
// -- End Wifi Sample
mWifiManager.startScan();
while (waiting) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("PROJECT1","Wifi WAITING");
}
Run Code Online (Sandbox Code Playgroud)