WifiManager.getScanResults() 未在 Android Jelly Bean 上提供 SSID
Posted
技术标签:
【中文标题】WifiManager.getScanResults() 未在 Android Jelly Bean 上提供 SSID【英文标题】:WifiManager.getScanResults() not giving SSID on Android Jelly Bean 【发布时间】:2014-09-24 12:02:26 【问题描述】:我正在尝试获取最新接入点扫描的结果。所以使用android文档WifiManager in Android Documentation中提供的这种方法@
在其他所有设备和版本中,它工作正常,只是在 Android Jelly Bean 上出现问题。 它不会在从此方法检索的结果中提供 SSID 名称。
我在很多地方都读到了Jelly Bean中存在双引号“”的问题,是的,这是真的,因为我检查了当前连接的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);
谁能帮我解决这个问题?
提前致谢。
【问题讨论】:
能否请您显示您所做的代码。 更新了问题。添加了有问题的代码。 @pavanmvn 【参考方案1】:Android 前版本将 SSID 括在引号中,而后 Jelly Bean 没有 http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID()
【讨论】:
【参考方案2】:我已经找到了替代方法,我正在粘贴下面的代码
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;
【讨论】:
以上是关于WifiManager.getScanResults() 未在 Android Jelly Bean 上提供 SSID的主要内容,如果未能解决你的问题,请参考以下文章