Bluetooth-соединение от телефона к Bluno отключается, когда приложение переходит к другой активности
Моя цель - подключить мое приложение к модулю Bluno. Я использовал и подправил коды из этого урока. По сути, в панели запуска моей версии есть кнопка "СКАНИРОВАНИЕ", которая позволяет сканировать и подключаться к модулю Bluno. После подключения он перенаправляет на другой вид деятельности (который в некотором роде похож на "основной" в том смысле, что здесь присутствуют такие функции, как общение, контакты, звонки). Проблема в том, что, как только я успешно подключился и перенаправил к другой активности, соединение Bluetooth отключается. Как это исправить? Спасибо.
1 ответ
Глядя на пример библиотеки, проблема, вероятно, заключается в том, что если вы просто скопировали ее прямо, то переход к другому действию будет приостановлен, поскольку BlunoLibrary записывается как расширяемый класс действий. Честно говоря, это немного странно - и, например, это не очень полезно для практического использования, если вы собираетесь выполнять несколько действий или по какой-то причине не можете подклассы от этого, оно также предназначено для работы в фоновом режиме.
В частности, если вы посмотрите на
public void onPauseProcess() {
System.out.println("BLUNOActivity onPause");
scanLeDevice(false);
mainContext.unregisterReceiver(mGattUpdateReceiver);
mLeDeviceListAdapter.clear();
mConnectionState=connectionStateEnum.isToScan;
onConectionStateChange(mConnectionState);
mScanDeviceDialog.dismiss();
if(mBluetoothLeService!=null)
{
mBluetoothLeService.disconnect();
mHandler.postDelayed(mDisonnectingOverTimeRunnable, 10000);
// mBluetoothLeService.close();
}
mSCharacteristic=null;
}
в BlunoLibrary (или onDestroy, или onStop) вы увидите, что он отключает службу при переключении активности. Вы можете просто не вызывать это (из mainactivity), но тогда вам нужно будет передать старую активность новому объекту активности или, по крайней мере, каким-то образом сообщить старому, куда отправлять входящие сообщения. Честно говоря, вам было бы лучше просто посмотреть из BlunoLibrary.java, что он на самом деле делает (для подключения по Bluetooth), и сделать свой собственный, основываясь на этой информации, а затем вы можете превратить его в сервис или как хотите, чтобы он выжил при переключении. деятельности.