我正在尝试获取最新接入点扫描的结果。所以使用Android文档WifiManager in Android Documentation
中提供的此方法在其他所有设备和版本中,它工作正常,只是在Android Jelly Bean上给出问题。 它没有在从此方法检索的结果中提供SSID名称。
我在很多地方都读到有双引号的问题" "在果冻豆中,是的,这是真的,因为我已经检查了当前连接的wifi名称,它被包含在" ",所以我只删除了开头和结尾的引号,它给了我好名字。 但是在从WifiManger.getScanResults()获取结果时,它甚至没有在检索到的结果中给出SSID名称。
这是代码
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled() == false) { // If Wifi is off, Switch it on
wifi.setWifiEnabled(true);
}
receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifi.startScan();
results = wifi.getScanResults();
for(int i=0 ; i<results.size(); i++){
String reslt = results.get(i).toString();
Log.d("TAG", "wifi ->>>" + reslt);
}
任何人都可以帮我解决这个问题吗?
先谢谢。
答案 0 :(得分:0)
之前的Android版本将SSID括在引号中,而后期Jellybean却没有 http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID()
答案 1 :(得分:0)
我找到了替代方法,我将粘贴下面的代码
public class MainActivity extends Activity {
WifiManager mWifiManager;
String Available_Networks="";
TextView ShowSSIDs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
//mWifiManager.startScan();
ShowSSIDs = (TextView) findViewById(R.id.ssId);
List<WifiConfiguration> mScanResults = mWifiManager.getConfiguredNetworks();
for(int x=0; x<mScanResults.size();x++){
Available_Networks+=mScanResults.get(x).SSID+"\n";
}
ShowSSIDs.setText(Available_Networks);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}