này (trộn và kết hợp các câu trả lời khác nhau từ Marakana và những người khác) sẽ đồng thời có được tất cả mọi thứ bạn muốn trích xuất từ:
- tất cả các router wifi trong phạm vi
- kết nối wifi router
tất cả các lưu trữ mạng wifi (trên thiết bị của bạn)
public String getCurrentSsid(Context context) {
String ssid = null;
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
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 && !(connectionInfo.getSSID().equals(""))) {
//if (connectionInfo != null && !StringUtil.isBlank(connectionInfo.getSSID())) {
ssid = connectionInfo.getSSID();
}
// Get WiFi status MARAKANA
WifiInfo info = wifiManager.getConnectionInfo();
String textStatus = "";
textStatus += "\n\nWiFi Status: " + info.toString();
String BSSID = info.getBSSID();
String MAC = info.getMacAddress();
List<ScanResult> results = wifiManager.getScanResults();
ScanResult bestSignal = null;
int count = 1;
String etWifiList = "";
for (ScanResult result : results) {
etWifiList += count++ + ". " + result.SSID + " : " + result.level + "\n" +
result.BSSID + "\n" + result.capabilities +"\n" +
"\n=======================\n";
}
Log.v(TAG, "from SO: \n"+etWifiList);
// List stored networks
List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks();
for (WifiConfiguration config : configs) {
textStatus+= "\n\n" + config.toString();
}
Log.v(TAG,"from marakana: \n"+textStatus);
}
return ssid;
}
KHUYẾN CÁO: trong khi đây là mã hoạt động, không phải mã giả, mục đích duy nhất của nó là minh họa các phương pháp trích xuất dữ liệu từ kết nối wifi và cần được điều chỉnh (và làm sạch) trước khi sử dụng.
Nguồn
2013-04-12 16:12:51
Có ai biết cần phải có quyền nào để thực hiện việc này không? –
android.permission.ACCESS_WIFI_STATE –