我的目标是将我的应用程序连接到一个Bluno模块。我使用并调整了this tutorial中的代码。基本上,我的版本的启动器活动有一个“扫描”按钮,让我扫描并连接到Bluno模块。一旦连接,它将重定向到另一个活动(从某种意义上说,它类似于“主”活动,因为功能在这里,即聊天,联系人,呼叫)。问题是,一旦我成功连接并重定向到另一个活动,蓝牙连接就会断开。我该如何解决这个问题?谢谢。
发布于 2018-02-28 22:46:11
看看这个库的例子,问题可能是,如果你只是直接复制它,那么当BlunoLibrary被写成你扩展的activity类时,转到不同的活动将会暂停。坦率地说,它有点奇怪--作为一个例子,如果你打算有多个活动,或者由于某种原因不能继承它,那么它对实际使用没有太大帮助,它也直接被设计为不在后台运行。
特别是如果你看一下
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),但是您需要将旧的活动传递给新的activity对象,或者至少以某种方式通知旧的活动将传入的消息发送到哪里。坦率地说,你最好只是从BlunoLibrary.java上看它实际做了什么(建立蓝牙连接),并基于这些信息创建自己的服务,然后你可以将它变成一个服务,或者以任何你想要的方式,这样它就可以在活动的切换中幸存下来。
https://stackoverflow.com/questions/49031618
复制相似问题