Android UUID Bluetooth для последовательного порта вызывает исключение - PullRequest
2 голосов
/ 25 апреля 2011

Я использую пример проекта 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)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

В итоге проблема была решена обновлением прошивки от Archos.

0 голосов
/ 25 апреля 2011

Изменили ли вы конструктор класса «AcceptThread», где вы используете эту функцию «listenUsingRfcommWithServiceRecord ()»?

Я использую тот же UUID на archos 70, и я не получаю никаких ошибок соединения Bluetooth (попробуйте перезапустить archos, если он прерывистый.) Я хотел добавить это как комментарии по некоторым причинам, я не вижу комментарий!

...