我的目标是将我的应用程序连接到Bluno模块。我使用并调整了this tutorial中的代码。基本上我的版本的启动器活动有一个“扫描”按钮,让我扫描并连接到Bluno模块。一旦连接,它就会重定向到另一个活动(有点像“主要”活动,就像这里的功能,即聊天,联系,呼叫)。问题是,一旦我成功连接并重定向到其他活动,蓝牙连接就会断开连接。我该如何解决?谢谢。
答案 0 :(得分: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看它实际做了什么(制作蓝牙连接)并根据这些信息制作你自己的,然后你可以把它变成一个服务或者你想要它以便它能够在切换中幸存下来活动。