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