1

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

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

但是,我的课程不是活动,并且未定义 startActivityForResult。我可以将主要活动的上下文传递给我的蓝牙类并在其上调用 startActivityForResult。这行得通。但是结果随后返回到我的主要活动,我必须再次将代码写入其中,而不是我的蓝牙专用类。

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

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

如何实现这一目标的所有想法将不胜感激。

谢谢你。

4

1 回答 1

0

组合,而不是继承。

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

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

于 2013-09-19T18:31:40.903 回答