반응형
Android API를 사용하여 Android에서 Wi-Fi 네트워크의 이름을 얻는 방법은 무엇입니까?
NetworkInterface :: getDisplayName을 사용해야한다고 생각했습니다. 이름이 있지만이 이름은 연결할 네트워크를 선택할 때 볼 수있는 이름과 다릅니다.
도와주세요..
[편집하다]
Loxley 답변에 따르면 :
WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String name = wifiInfo.getSSID();
android.net.wifi.WifiInfo.getSSID
?
public String getWifiName(Context context) {
WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (manager.isWifiEnabled()) {
WifiInfo wifiInfo = manager.getConnectionInfo();
if (wifiInfo != null) {
DetailedState state = WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState());
if (state == DetailedState.CONNECTED || state == DetailedState.OBTAINING_IPADDR) {
return wifiInfo.getSSID();
}
}
}
return null;
}
이것은 (Marakana 및 다른 사람들의 다양한 답변의 혼합 및 일치)에서 추출하려는 모든 것을 동시에 얻을 수 있습니다.
- 범위 내의 모든 Wi-Fi 라우터
- 연결된 와이파이 라우터
저장된 모든 Wi-Fi 네트워크 (기기에 있음)
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; }
면책 조항 :이 코드는 의사 코드가 아니라 작업 코드이지만 유일한 목적은 Wi-Fi 연결에서 데이터를 추출하는 방법을 설명하는 것이므로 사용하기 전에 조정 (및 정리)해야합니다.
반응형
'code' 카테고리의 다른 글
단 형성 제한이란 무엇입니까? (0) | 2020.12.05 |
---|---|
두 개의 서브 플롯이 생성 된 후 x 축을 어떻게 공유합니까? (0) | 2020.12.05 |
.less 파일에서 Visual Studio 2010 .css Intellisense를 켜는 방법 (0) | 2020.12.05 |
Chrome은 Safari 및 Firefox와 다르게 색상을 렌더링합니다. (0) | 2020.12.05 |
치명적인 오류 : 메모리가 부족하지만 메모리가 충분합니다 (PHP). (0) | 2020.12.05 |