当应用程序转到另一个活动时,从手机到Bluno的蓝牙连接断开连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当应用程序转到另一个活动时,从手机到Bluno的蓝牙连接断开连接相关的知识,希望对你有一定的参考价值。

我的目标是将我的应用程序连接到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看它实际做了什么(制作蓝牙连接)并根据这些信息制作你自己的,然后你可以把它变成一个服务或者你想要它以便它能够在切换中幸存下来活动。

以上是关于当应用程序转到另一个活动时,从手机到Bluno的蓝牙连接断开连接的主要内容,如果未能解决你的问题,请参考以下文章

当 AsyncTask 中的 catch() 抛出错误时转到另一个活动

在android studio中单击操作栏菜单中的项目时跳转到另一个活动

当应用程序处于固定模式并且我注销时,会显示登录活动。但是,如果我点击后退按钮,它会转到上一个活动

设置onclick侦听器在android中无法从一个片段移动到另一个活动[重复]

从 UIViewController 切换到另一个时如何保持 UILongPressGestureRecognizer 处于活动状态

如何将数据从 sqlite 数据库传递到另一个活动?