0

我的目标是将我的应用程序连接到 Bluno 模块。我使用并调整了本教程中的代码。基本上,我的版本的启动器活动有一个“扫描”按钮,可以让我扫描并连接到 Bluno 模块。一旦连接,它就会重定向到另一个活动(这有点像“主要”活动,因为这里的功能是聊天、联系、通话)。问题是,一旦我成功连接并重定向到其他活动,蓝牙连接就会断开。我该如何解决?谢谢你。

4

1 回答 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 回答