Notice
Recent Posts
Recent Comments
Link
투케이2K
149. (kotlin/코틀린) [유틸 파일] bluetoothConnectState : 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인 본문
Kotlin
149. (kotlin/코틀린) [유틸 파일] bluetoothConnectState : 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인
투케이2K 2023. 1. 1. 19:26[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// TODO [SEARCH FAST] : [bluetoothConnectState] : 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인
fun bluetoothConnectState(mContext: Context): Boolean {
/**
* // -----------------------------------------
* [bluetoothConnectState 메소드 설명]
* // -----------------------------------------
* 1. 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인
* // -----------------------------------------
* 2. 호출 방법 : C_StateCheck.bluetoothConnectState(this@A_Intro)
* // -----------------------------------------
* 3. 리턴 결과 : 블루투스 장비가 연결된 경우 true / 아니면 false
* // -----------------------------------------
* 4. 필요 퍼미션 :
*
* <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"></uses-permission>
* // -----------------------------------------
*/
// [리턴 결과 반환 변수 선언]
var returnData = false
var deviceName = ""
// [로직 처리 실시]
try {
/**
* // -----------------------------------------
* 1. [페어링 된 블루투스 장비 목록을 얻어옵니다]
* 2. 블루투스 기능이 활성화된 경우 BluetoothDevice 리스트 목록 표시 / 블루투스 기능이 비활성인 경우 목록 표시 안됨
* // -----------------------------------------
*/
// TODO [안드로이드 12 / 타겟 31 이상 권한 체크 로직 추가 실시]
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
Log.i("---","---")
Log.e("//===========//","================================================")
Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실패]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[ERROR :: "+"Android 12 / target 31 이상 BLUETOOTH_CONNECT 권한 부여 안됨"+"]")
Log.e("//===========//","================================================")
Log.i("---","---")
return returnData
}
}
val bluetoothDevices = BluetoothAdapter.getDefaultAdapter().bondedDevices
Log.i("---","---")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[페어링된 블루투스 장비 목록 :: "+bluetoothDevices.toString()+"]")
Log.d("//===========//","================================================")
Log.i("---","---")
// [페어링된 블루투스 장비 목록에서 현재 연결된 상태 체크 실시]
for (bluetoothDevice in bluetoothDevices) {
try {
// [isConnected 메소드를 사용해서 페어링된 블루투스 장비 목록에서 개별 장비가 연결되었는지 확인 실시]
val m = bluetoothDevice.javaClass.getMethod("isConnected")
val connected = m.invoke(bluetoothDevice) as Boolean
if (connected == true) { // TODO [블루투스 장비가 연결된 상태]
// [연결된 블루투스 디바이스 이름 확인]
deviceName = bluetoothDevice.name.toString()
///*
if (C_Util.stringNotNull(deviceName) === true) {
} else {
deviceName = bluetoothDevice.address.toString()
}
// */
// [리턴 결과 삽입]
returnData = true
// [반복문 종료]
break
}
} catch (e: Exception) {
e.printStackTrace()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
Log.i("---","---")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[DEVICE :: "+deviceName.toString()+"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+returnData.toString()+"]")
Log.d("//===========//","================================================")
Log.i("---","---")
// [리턴 결과 반환]
return returnData
}
[결과 출력]
반응형
'Kotlin' 카테고리의 다른 글
Comments