일본인 개발자인 山本隆(야마모토 타카시)의 글을 참고해 안드로이드에서 블루투스 활성여부 조회와 설정하는 내용을 공유합니다.
블루투스 활성여부 조회
uses Androidapi.JNI.Bluetooth; procedure TForm2.Button1Click(Sender: TObject); var Adapter: JBluetoothAdapter; begin Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter; if Adapter.isEnabled then ShowMessage('Bluetooth가 활성화 되어있습니다.') else ShowMessage('Bluetooth가 활성화 되지 않았습니다.'); end;
블루투스 활성화 설정
uses Androidapi.JNI.Bluetooth; procedure TForm2.Button2Click(Sender: TObject); var Adapter: JBluetoothAdapter; begin Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter; if Adapter.enable then ShowMessage('Bluetooth를 활성화합니다.') else ShowMessage('사용할 수 없습니다.'); end; procedure TForm1.Button3Click(Sender: TObject); var Adapter: JBluetoothAdapter; begin Adapter := TJBluetoothAdapter.JavaClass.getDefaultAdapter; if Adapter.disable then ShowMessage('Bluetooth를 비활성화합니다.') else ShowMessage('사용할 수 없습니다.'); end;
블루투스 권한이 있는지 확인
uses Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText; procedure TForm2.Button3Click(Sender: TObject); function HasPermission(const Permission: string): Boolean; begin Result := SharedActivityContext.checkCallingOrSelfPermission(StringToJString(Permission)) = TJPackageManager.JavaClass.PERMISSION_GRANTED end; begin if HasPermission('android.permission.BLUETOOTH') then ShowMessage('Bluetooth 통신 권한이 있습니다.') else ShowMessage('Bluetooth 통신 권한이 없습니다'); if HasPermission('android.permission.BLUETOOTH_ADMIN') then ShowMessage('Bluetooth 설정 수정 권한이 있습니다.') else ShowMessage('Bluetooth 설정 수정 권한이 없습니다.'); end;
- 블루투스 관련 권한(Project Options > Uses Permissions)이 필요합니다.
- Bluetooth
- Bluetooth admin