마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Bluetooth turn on에 대한 질문

0 추천
현재 Bluetooth 가 꺼져 있으면 앱 시작 시, Bluetooth 를 자동으로 켜주는 기능을 넣고 싶어서 찾아보니

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 와 같이 어댑터를 받아온 후

mBluetoothAdapter.enable(); 로 Bluetooth를 켜는 것으로 알고있습니다.

현재 사용 중인 앱이 ViewPager로 구성되어 있는 앱인데

MainActivity에서 onCreate() 할 때, 이를 선언해 준 후, 꺼져 있으면 on을 해줍니다.

그런데 on을 한 후에, mBluetoothAdapter.isEnable() 함수로 상태를 확인해보면 false로 나옵니다. (이 앱에선 계속 false)

뭔가 이상해 새로운 테스트 프로젝트에 버튼 2개를 달고

하나는 Bluetooth를 끄고 하나는 켜는 기능을 넣었습니다.

그리고 끄고 키는 동작 바로 후, Bluetooth 상태를 로그로 찍어보니 바로 바뀌지 않고 일정시간(?)이 지난 후

상태가 바뀌는걸 확인해볼 수 있었습니다.

 

질문 1) 원래 mBluetoothAdapter.enable() 과 같이 turn on 명령을 내리면 상태가 변경되는데 일정 시간이 소요 되나요?

질문 2) BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 와 같이 어댑터를 받아올 때

한번 받은 어댑터를 계속 넘기면서 할 필요없이, 필요할 때 위의 방법처럼 받아와도 문제 없나요?

ex - 1.java 에서 선언한 mBluetoothAdapter랑 2.java에서 선언한 mBluetoothAdapter랑 같은지 (전 같다고 생각)

 

오버 플로우나 구글링 열심히 해봐도 다 mBluetoothAdapter.enable() 만하면 다 켜진다는데

저는 안돼서 오늘 오전 다 날렸네요...
yt0229 (1,070 포인트) 님이 2019년 9월 18일 질문

1개의 답변

0 추천

이렇게 해보세요.

startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 1234)

뭐하다가 안되면 최근 소스 위주로 찾아보시면 해결될 때가 많습니다. 

 

쎄미 (162,410 포인트) 님이 2019년 9월 19일 답변
알림 없이 켜려다보니 위의 방법으로 한거고 블루투스 On을 해도 살짝 시간이 필요하네요 500미리 정도. 그리고 어댑터는 기기의 상태를 가져오는 거라 다 같은 듯 합니다!
...