Notice
Recent Posts
Recent Comments
Link
투케이2K
213. (kotlin/코틀린) [유틸 파일] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시 본문
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// ----------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
// ----------------------------------------------------------------------------------
fun wifi_Info_Print(mContext: Context) {
/**
* // -----------------------------------------
* [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>
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
* // -----------------------------------------
*/
// [로직 처리 실시]
try {
// [현재 와이파이 연결된 상태 체크]
if (C_StateCheck.isWifiConnected(mContext) === true) {
// [Android 12 이상 분기 처리]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
//*
// [ConnectivityManager 생성]
val cm = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkRequest = NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build()
// [와이파이 정보 확인]
val networkCallback: NetworkCallback = object : NetworkCallback(FLAG_INCLUDE_LOCATION_INFO) {
override fun onAvailable(network: Network) {
super.onAvailable(network)
}
override fun onCapabilitiesChanged(network: Network, net: NetworkCapabilities) {
// [와이파이 정보 확인]
val wifiInfo = net.transportInfo as WifiInfo?
val getSsid = wifiInfo!!.ssid.replace("[\"]".toRegex(), "")
val wIp = wifiInfo!!.ipAddress
val getIpAddress = String.format(
"%d.%d.%d.%d",
wIp and 0xff,
wIp shr 8 and 0xff,
wIp shr 16 and 0xff,
wIp shr 24 and 0xff
)
val getBSSID = wifiInfo!!.bssid.trim { it <= ' ' }
// [로그 출력]
S_Log.ltd("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> wifi_Info_Print :: [HIGHT] 현재 연결된 와이파이 정보 출력 실시]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getSsid :: $getSsid]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getIpAddress :: $getIpAddress]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getBSSID :: $getBSSID]")
S_Log.lbd("================================================")
}
}
cm.requestNetwork(networkRequest, networkCallback)
// */
} else {
// [와이파이 정보 확인]
val wifimanager = mContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
val wifiInfo = wifimanager.connectionInfo
val dhcpInfo = wifimanager.dhcpInfo
val wIp = dhcpInfo.ipAddress
var getSsid = wifiInfo.ssid
getSsid = getSsid.replace("[\"]".toRegex(), "")
val getIpAddress = String.format(
"%d.%d.%d.%d",
wIp and 0xff,
wIp shr 8 and 0xff,
wIp shr 16 and 0xff,
wIp shr 24 and 0xff
)
var getBSSID = wifiInfo.bssid
getBSSID = getBSSID.trim { it <= ' ' }
// [로그 출력]
S_Log.ltd("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: [LOW] 현재 연결된 와이파이 정보 출력 실시]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getSsid :: $getSsid]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getIpAddress :: $getIpAddress]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[getBSSID :: $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 (e: Exception) {
e.printStackTrace()
S_Log.lte("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: 현재 연결된 와이파이 정보 출력 실시]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[exception :: " + e.message.toString() + "]")
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///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments