Notice
Recent Posts
Recent Comments
Link
투케이2K
464. (kotlin/코틀린) [유틸 파일] : getNearDeviceSearchPermissionEnable - 근처 기기 권한 부여 체크 본문
Kotlin
464. (kotlin/코틀린) [유틸 파일] : getNearDeviceSearchPermissionEnable - 근처 기기 권한 부여 체크
투케이2K 2024. 3. 21. 21:07[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [Android 12] : [근처 기기 권한 부여 상태 확인]
// -----------------------------------------------------------------------------------------
fun getNearDeviceSearchPermissionEnable(mContext: Context): Boolean {
/**
* -------------------------------------------
* [호출 방법]
*
* C_Permission.getNearDeviceSearchPermissionEnable(A_Intro@this)
* -------------------------------------------
* [필요 권한] : [사전 AndroidManifest.xml 파일에 해당 권한 추가 필요]
*
* <uses-permission android:name="android.permission.BLUETOOTH_SCAN"></uses-permission>
* <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"></uses-permission>
* <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"></uses-permission>
* -------------------------------------------
* [참고 사항] :
*
* 해당 권한 체크로 compileSdk 가 30 이하인 경우에도
* 근처 기기 권한 부여 상태 체크 가능
*
* 안드로이드 12 이상 기기에서 권한이 부여되어있지 않더라도 해당 함수 호출 시 자동 권한 창 호출
* -------------------------------------------
*/
// [Context 지정]
context = mContext
// [초기 리턴 변수 선언]
var resultData = false
// [로직 처리 수행 실시]
var osVersion = -1
try {
osVersion = Build.VERSION.RELEASE.toInt()
if (osVersion >= 12) {
val bluetoothManager = mContext.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
val ble_Adapter = bluetoothManager.adapter
val pairedDevices = ble_Adapter.bondedDevices
resultData = true
} else {
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(mContext, Manifest.permission.BLUETOOTH) == PackageManager.PERMISSION_GRANTED) {
resultData = true
}
}
if (resultData == true) {
// ===============================================================
S_Log._F_(mContext, "근처 기기 권한 : 정상 부여", null)
// ===============================================================
} else {
// ===============================================================
S_Log._F_(mContext, "근처 기기 권한 : 비정상 상태 (Not Grant)", null)
// ===============================================================
}
} catch (e: Exception) {
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e)
// ===============================================================
S_Log._F_(mContext, "근처 기기 권한 : 비정상 상태 (Exception)", null)
// ===============================================================
}
// [결과 리턴 실시]
return resultData
}
[결과 출력]
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_Permission$Companion.getNearDeviceSearchPermissionEnable(C_Permission.kt:1257)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-03-21 15:58:50 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 근처 기기 권한 : 정상 부여]
W///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments