Подтвердить что ты не робот

Getbluetoothservice(), вызываемый без bluetoothmanagercallback

Я часто получаю getBluetoothService() called with no BluetoothManagerCallback как ошибку в приложении для Android.

Я не знаю, что вызывает это или что-то в обратных вызовах диспетчера Bluetooth. Может ли кто-нибудь дать мне хорошее представление о том, что может вызвать эту проблему или где начать искать.

4b9b3361

Ответ 1

Прочитав исходный код Android, кажется, это предупреждение, о котором вы ничего не можете сделать. Исходный код показывает, что если вы вызываете

BluetoothSocket#connect();

Затем он вызовет

BluetoothAdapter.getDefaultAdapter().getBluetoothService(null);

Ключ здесь - нулевой параметр, который он передает в приведенной выше строке. Из-за этого не будет обратного вызова, а затем класс BluetoothSocket выкинет предупреждение.

Поскольку это всего лишь предупреждение, я не думаю, что вам нужно что-то сделать.

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothSocket.java строка 306 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothAdapter.java строка 1610

Ответ 2

Похоже, что это вызвано, когда сразу открываются несколько гнезд Bluetooth. Я исправил это, убедившись, что я только открывал 1 сокет за раз.

Ответ 3

Я получаю эту ошибку даже после того, как мое приложение закрыто, и я не могу избавиться от него любым возможным способом. После этого начала мне нужно жестко перезагрузить свой телефон, потому что я больше не могу включить Bluetooth.

Прямо сейчас (с тем же кодом) это происходит только на одном из моих телефонов.. возможно, это проблемы с драйверами.

Ответ 4

Я получил это сообщение после попытки BluetoothSocket.connect() сразу после получения BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED с состоянием BluetoothHeadset.STATE_CONNECTED. Ошибка BluetoothSocket.connect(). После добавления тайм-аута в 500 мс, прежде чем пытаться подключиться к BluetoothSocket.connect(), это решило мою проблему подключения. Сообщение "getBluetoothService(), вызываемое без BluetoothManagerCallback" все еще остается, но все работает.

Ответ 5

getBluetoothService(), вызываемый без BluetoothManagerCallback

Я также сталкиваюсь с той же проблемой. Но я решил. В моем случае уже один сокет находится в открытом состоянии, и я пытаюсь открыть другой сокет. Поэтому мы пытаемся открыть несколько сокетов одновременно в качестве клиента. Я чувствовал, что это причина.

Ответ 6

Это также происходит, если BluetoothServerSocket в настоящее время не принимает [bluetoothServerSocket.accept()] с тем же UUID, который вы пытаетесь подключить.

Если вы уверены, что принимаете с помощью сокета сервера, дважды проверьте, что вы не предоставили слишком короткий тайм-аут (ранее я установил его на 200, чтобы что-то проверить).