gpt4 book ai didi

java - Android:创建一个处理所有蓝牙相关操作的类

转载 作者:行者123 更新时间:2023-12-01 04:21:03 24 4
gpt4 key购买 nike

我正在尝试编写一个使用蓝牙的 Android 应用程序,但遇到了一些问题。我按照 guide 成功地让事情正常工作在 Android 开发者门户上。但我想稍微组织一下我的代码,并将与蓝牙相关的所有内容移动到单独的 class/src 文件中。我在尝试打开蓝牙时遇到了问题。根据上述指南,这是通过以下方式完成的:

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

但是我的类不是 Activity ,并且 startActivityForResult 未定义。我可以将主要 Activity 的上下文传递给蓝牙类,然后调用 startActivityForResult 。这有效。但结果随后返回到我的主要 Activity ,我必须再次向其中写入代码,而不是我的蓝牙专用类。

或者,我可以让我的蓝牙类扩展 Activity 类。但随后 startActivityForResult 返回一个 nullPointer 异常(我接受它是因为我的“Activity”未初始化)。

我在 Android 应用程序开发方面是全新的,所以我希望得到一些关于应该注意什么的指示来帮助我解决问题。我真的希望将与蓝牙相关的所有内容都放在一个 class/src 文件中,以便我可以在未来的任何应用程序中重用它。

所有关于如何实现这一目标的想法都将受到高度赞赏。

谢谢。

最佳答案

组合,而不是继承。

将 Activity 作为构造函数传递给您的 BluetoothGodClass,将其存储在实例变量中,并使用它来调用相应的方法。但。

你真正需要做什么? UI需要控制蓝牙吗?创建一个方法 TurnOnBluetooth(Activity Activity) 并使用它。您真的需要收到您调用的 Activity 的具体结果吗?如果没有,请使用 Context 或 BroadcastReceiver。

关于java - Android:创建一个处理所有蓝牙相关操作的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com