Notice
Recent Posts
Recent Comments
Link
투케이2K
755. (Android/Java) [유틸 파일] : getNearDeviceSearchPermissionEnable - 근처 기기 권한 부여 체크 본문
Android
755. (Android/Java) [유틸 파일] : getNearDeviceSearchPermissionEnable - 근처 기기 권한 부여 체크
투케이2K 2024. 3. 21. 21:04[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [Android 12] : [근처 기기 권한 부여 상태 확인]
// -----------------------------------------------------------------------------------------
public static boolean getNearDeviceSearchPermissionEnable(Context mContext){
/**
* -------------------------------------------
* [호출 방법]
*
* C_Permission.getNearDeviceSearchPermissionEnable(A_Intro.this);
* -------------------------------------------
* [필요 권한] : [사전 AndroidManifest.xml 파일에 해당 권한 추가 필요]
*
* <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
* <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
* <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
* -------------------------------------------
* [참고 사항] :
*
* 해당 권한 체크로 compileSdk 가 30 이하인 경우에도
* 근처 기기 권한 부여 상태 체크 가능
*
* 안드로이드 12 이상 기기에서 권한이 부여되어있지 않더라도 해당 함수 호출 시 자동 권한 창 호출
* -------------------------------------------
* */
// [Context 지정]
context = mContext;
// [초기 리턴 변수 선언]
boolean resultData = false;
// [로직 처리 수행 실시]
int osVersion = -1;
try {
osVersion = Integer.parseInt(Build.VERSION.RELEASE);
if (osVersion >= 12){
BluetoothManager bluetoothManager = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter ble_Adapter = bluetoothManager.getAdapter();
Set<BluetoothDevice> pairedDevices = ble_Adapter.getBondedDevices();
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 (Exception e){
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.javaproject.C_Permission.getNearDeviceSearchPermissionEnable(C_Permission.java:1538)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-03-21 15:57:57 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 근처 기기 권한 : 정상 부여]
W///===========//: ================================================
반응형
'Android' 카테고리의 다른 글
Comments