Я использую пример проекта Android для разработки BluetoothChat.
http://developer.android.com/resources/samples/BluetoothChat/index.html Я запускаю его на Archos 43 и пытаюсь установить связь с адаптером последовательного интерфейса для Bluetooth.Для связи с адаптером мне нужно использовать UUID 00001101-0000-1000-8000-00805F9B34FB.Однако, когда я это делаю, я получаю исключение пустого указателя в этой строке: socket = mmServerSocket.accept ();
Если я использую другой UUID, у меня нет этой проблемы, однако я не могу подключиться кпоследовательный адаптер.Если я использую Motorola Droid вместо Archos 43, у меня нет этой проблемы.
Из некоторых сообщений об ошибках я думаю, что Archos использует стек bluez.
Любые идеи, почемукомбинация этого UUID и стека вызовет исключение при вызове функции accept ()?
Вот код окружения (вы можете получить весь исходный код по ссылке выше)
public void run() {
if (D) Log.d(TAG, "BEGIN mAcceptThread" + this);
setName("AcceptThread");
BluetoothSocket socket = null;
// Listen to the server socket if we're not connected
while (mState != STATE_CONNECTED) {
try {
// This is a blocking call and will only return on a
// successful connection or an exception
socket = mmServerSocket.accept();
} catch (IOException e) {
Log.e(TAG, "accept() failed", e);
break;
}
Некоторыесообщения об ошибках из журнала:
04-25 21: 05: 33.278: ОШИБКА / BluetoothChatService (3321): сбой прослушивания ()
04-25 21: 05: 33.278: ОШИБКА / BluetoothChatService(3321): java.io.IOException: не удается зарегистрировать запись SDP для BluetoothChat
04-25 21: 05: 33.278: ОШИБКА / BluetoothChatService (3321): в android.bluetooth.BluetoothAdapter.listenUsingRfcommWithServiceRecord (BluetoothAdapter.java: 778)