저희가 어플을 개발하는 중에 궁금한 점들이 있어서 질문합니다.

일단 저희가 할려는 것은 블루투스를 이용하는 것인데, 저희가 참고한 자료는 Bluetooth Chat이고요.

궁금한 사항은

블루투스 장치를 검색하면, 주위에 블루투스 장치들이 검색이 되는데, 이게 리스트로 뜨잖아요, 그때 이 장치들 중 어떤 특정한 하나와 페어링을 할려는 것은 아니고, 예를 들어 3개가 뜬다면, 그 중 2개 또는 1개 등 원하는 장치들을 우리가 선택하게 됩니다. 그러고 나서 다시 재검색을 했을 때 방금 선택한 장치들 중 단 하나라도 리스트에서 사라지게 되면, 알람이 울리거나 진동이 울리거나 또는 핸드폰 화면에 어떤 오류창을 띄워주든지 하도록 할려고 합니다.

정리해서 말하자면,

① 블루투스 장치를 검색한다. -> ② 검색된 장치가 리스트로 나타난다. -> ③ 리스트에 나온 장치 중 특정 장치들을 선택한다. -> ④ 재검색을 한다. -> ⑤ 재검색 된 장치들과 좀 전에 선택한 장치간의 목록 비교를 실시한다. -> ⑥ 선택한 장치 중 단 하나라도 재검색했을 때 사라지게 되면 이를 알려준다.(알람, 진동, 텍스트창 등)

이 중에서 검색하고 리스트로 나타내는 부분은 Bluetooth Chat 어플을 다운 받아서 실행해보니깐 대충은 알겠는데, 거기서는 리스트 중에 특정한 하나의 장치와 페어링을 하는 기능만이 됩니다. 저희가 원하는 것은 페어링은 필요 없고, 리스트에 검색이 될 때 아마 MAC주소 등이 어떤 변수에 저장이 될 텐데, 이러한 저장된 변수들 중 우리가 원하는 장치를 선택해서 다른 변수에 지정을 하고, 이 변수들과 재검색 했을 새로 나타나는 MAC주소들 간에 주소를 비교하면 우리가 선택했던 장치들 중 사라진 장치가 있다면, 이를 오류로 출력하게 하는 등의 작업을 할 수 있지 않을까 생각합니다.

“ mArrayAdapter.add(device.getName() + “\n” + device.getAddress()); ” <<< 이부분이 Bluetooth Chat의 디바이스 검색 부분에서 나오는 소스의 일부인데, 아마 장치의 MAC 주소등을 저장하는 과정인 듯 합니다. 이렇게 저장한다는 것은 어떤 변수로든 저장이 될텐데, 이 변수가 저장되는 부분의 이름이 라든지 아니면, 이 값들을 우리가 원하는 변수에 저장하는 방법이라든지 그런 것을 알려주시며 감사하겠습니다.

---------------------------------------------------------------------------------------------

// Create a BroadcastReceiver for ACTION_FOUND

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

// When discovery finds a device

if (BluetoothDevice.ACTION_FOUND.equals(action)) {

// Get the BluetoothDevice object from the Intent

BluetoothDevice device = intent.getParcelableExtra( BluetoothDevice.EXTRA_DEVICE);

// discover된 단말의 mac address 를 저장한다.

mArrayAdapter.add(device.getName() + “\n” + device.getAddress());

}

}

};

// Register the BroadcastReceiver

IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

registerReceiver(mReceiver, filter);

// onDestroy시 unregister를 꼭 해야 한다.

--------------------------------------------------------------------------------------------------