java - 你能在android studio中将蓝牙套接字从一个 Activity 转移到另一个 Activity 吗

标签 java android android-studio android-bluetooth

我正在android studio中构建一个BTchat应用程序项目, 第一个 Activity 设置连接,设备连接后我们将进入下一个 Activity 。我使用了带有 getBTSocket() 和 setBTSocket() 等方法的应用程序类。在第二个 Activity 中,当调用 getBTSocket() 时,我的应用程序关闭/崩溃(无论您如何调用它)。

这是套接字的代码。

public void setBluetoothSocket ( BluetoothSocket socket1 ) {
    socket = socket1;
}

public BluetoothSocket getBTSocket()  {
    return socket;
}

请告诉我我该怎么办。

最佳答案

没有静态字段就无法做到这一点(不好的方式)。

BluetoothSocket 不可序列化,也不可打包以通过 Intent 发送它。

您需要在 Activity 内打开/关闭连接,并且仅使用 fragment 进行导航。当 Activity 调用 onStop() 时 - 关闭连接,重新启动 onResume()

另一种方式是Android服务:https://developer.android.com/reference/android/app/Service

关于java - 你能在android studio中将蓝牙套接字从一个 Activity 转移到另一个 Activity 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61470715/

相关文章:

java - 我的 euler Project 函数结果错误

java - 单击时显示对话框首选项

android - 是否可以自定义 CalendarView 小部件以显示事件并自定义颜色(渐变色)?

android - 所选设备不兼容

Android Studio Stuck at Gradle 下载创建新项目

java - 对象作为 Apache CXF REST 服务方法中的参数

java - JBoss envers 和巨大的审计表

java - 为什么这个数组会出现空指针异常?

android - 致命异常 : java. lang.IllegalArgumentException : Receiver not registered: android. hardware.camera2.CameraManager

android - 自定义 AutoCompleteTextview 从 web Android 获取数据