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

블루투스 연결시 자동으로 페어링 하는 방법이 있나요

0 추천
블루투스 연결시 처음연결 시에는 자동으로 핀코드 입력창이 나오자나요?

여기에 핀코드를 넘겨주어 자동으로 연결되게 하고 싶은데

어떻게 해야 될까요...?

핀코드 입력창을 제어 할 수 있는 거면 좋겠는데 자동으로 떠버리니 감이 안오네요....
아개발잘하고싶다 (340 포인트) 님이 2014년 7월 8일 질문

2개의 답변

0 추천
 
채택된 답변

android.bluetooth.device.action.PAIRING_REQUEST를 처리하는 BroadcastReceiver를 만들어서 자동으로 핀코드 입력 처리할 수 있습니다.

isul (7,920 포인트) 님이 2014년 7월 9일 답변
아개발잘하고싶다님이 2014년 7월 9일 채택됨
현재 쓰고 있는게

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        // device를 찾았을 경우 아래를 수행한다.
        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            // Intent로 전달된 BluetoothDevice를 획득한다.
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            // 장치 이름과 MAC address를 ListView에 추가해 주기 위하여 ArrayAdapter에 추가해 준다.
            mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
        }
    }
};

// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);

이런식으로 쓰고 있었는데 이 BroadcastReceiver 말고 또 하나의 리시버를 만들어야 되는건가요? 조금만 자세히 알려주셔요 ㅠㅠ
예.. ACTION_PAIRING_REQUEST(android.bluetooth.device.action.PAIRING_REQUEST)용으로 하나 더 만들어야 됩니다.

BluetoothDevice  클래스를 확인해보세요..
http://developer.android.com/intl/ko/reference/android/bluetooth/BluetoothDevice.html#setPin(byte[])
–2 추천
페어링 되지 않은 기기간에 핀코드 교환 방법을 통하지 않고서 페어링 하는 방법은 없습니다.

루팅 한다면 가능할지도 모르지만 루팅은 안해봐서 그쪽은 잘모르겠네요.
dev_아마 (9,750 포인트) 님이 2014년 7월 9일 답변
...