我的目标是将我的应用程序连接到 Bluno 模块。我使用并调整了本教程中的代码。基本上,我的版本的启动器活动有一个“扫描”按钮,可以让我扫描并连接到 Bluno 模块。一旦连接,它就会重定向到另一个活动(这有点像“主要”活动,因为这里的功能是聊天、联系、通话)。问题是,一旦我成功连接并重定向到其他活动,蓝牙连接就会断开。我该如何解决?谢谢你。
1 回答
0
查看库示例,问题可能在于,如果您只是直接复制它,那么转到不同的活动将暂停,因为 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 中查看它的实际作用(建立蓝牙连接)并根据该信息制作你自己的,然后你可以将它变成一个服务,或者你想要的任何东西,以便它在切换后仍然存在的活动。
于 2018-02-28T14:46:11.013 回答