Notice
Recent Posts
Recent Comments
Link
투케이2K
473. (Android/Java) [android 12 / target 31] [유틸 파일] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시 본문
Android
473. (Android/Java) [android 12 / target 31] [유틸 파일] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
투케이2K 2023. 2. 10. 18:30[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
// -----------------------------------------------------------------------------------------
public static void wifi_Info_Print(Context mContext) {
/**
* // -----------------------------------------
* [wifi_Info_Print 메소드 설명]
* // -----------------------------------------
* 1. wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_App.wifi_Info_Print(A_Intro.this);
*
* // -----------------------------------------
* 3. 필요 퍼미션 :
*
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
* // -----------------------------------------
* */
// [로직 처리 실시]
try {
// [현재 와이파이 연결된 상태 체크]
if(C_StateCheck.isWifiConnected(mContext) == true){
// [Android 12 이상 분기 처리]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
//*
// [ConnectivityManager 생성]
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
// [와이파이 정보 확인]
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback(ConnectivityManager.NetworkCallback.FLAG_INCLUDE_LOCATION_INFO) {
@Override
public void onAvailable(Network network) {
super.onAvailable(network);
}
@Override
public void onCapabilitiesChanged(Network network, NetworkCapabilities net) {
// [와이파이 정보 확인]
WifiInfo wifiInfo = (WifiInfo) net.getTransportInfo();
String getSsid = String.valueOf(wifiInfo.getSSID().replaceAll("[\"]",""));
int wIp = wifiInfo.getIpAddress();
String getIpAddress = String.format("%d.%d.%d.%d", (wIp & 0xff), (wIp >> 8 & 0xff), (wIp >> 16 & 0xff), (wIp >> 24 & 0xff));
String getBSSID = String.valueOf(wifiInfo.getBSSID().trim());
// [로그 출력]
S_Log.ltd("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> wifi_Info_Print :: [HIGHT] 현재 연결된 와이파이 정보 출력 실시]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getSsid :: "+String.valueOf(getSsid)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getIpAddress :: "+String.valueOf(getIpAddress)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getBSSID :: "+String.valueOf(getBSSID)+"]");
S_Log.lbd("================================================");
}
};
cm.requestNetwork(networkRequest, networkCallback);
// */
}
else {
// [와이파이 정보 확인]
WifiManager wifimanager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifimanager.getConnectionInfo();
DhcpInfo dhcpInfo = wifimanager.getDhcpInfo();
int wIp = dhcpInfo.ipAddress;
String getSsid = wifiInfo.getSSID();
getSsid = getSsid.replaceAll("[\"]","");
String getIpAddress = String.format("%d.%d.%d.%d", (wIp & 0xff), (wIp >> 8 & 0xff), (wIp >> 16 & 0xff), (wIp >> 24 & 0xff));
String getBSSID = wifiInfo.getBSSID();
getBSSID = getBSSID.trim();
// [로그 출력]
S_Log.ltd("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: [LOW] 현재 연결된 와이파이 정보 출력 실시]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getSsid :: "+String.valueOf(getSsid)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getIpAddress :: "+String.valueOf(getIpAddress)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[getBSSID :: "+String.valueOf(getBSSID)+"]");
S_Log.lbd("================================================");
}
}
else {
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 현재 연결된 와이파이 정보 출력 실시]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[error :: wifi is not connected]");
S_Log.lbe("================================================");
}
} catch (Exception e) {
e.printStackTrace();
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 현재 연결된 와이파이 정보 출력 실시]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[exception :: "+String.valueOf(e.getMessage())+"]");
S_Log.lbe("================================================");
}
}
[결과 출력]
D///===========//: ================================================
I/: [C_App >> wifi_Info_Print :: [HIGHT] 현재 연결된 와이파이 정보 출력 실시]
I/: -----------------------------------------
I/: [getSsid :: twok]
I/: -----------------------------------------
I/: [getIpAddress :: 192.168.0.10]
I/: -----------------------------------------
I/: [getBSSID :: 88:36:6c:1f:27:4e]
D///===========//: ================================================
반응형
'Android' 카테고리의 다른 글
Comments