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

时间:2013-09-19 18:21:41

标签: java android

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

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

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

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

我是Android应用程序开发的新手,所以我希望能提供一些有关如何帮助我解决问题的建议。我真的希望在一个类/ src文件中包含与蓝牙相关的所有内容,以便我可以在以后的任何应用程序中重复使用它。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

组成,而不是继承。

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

你真的需要做什么?用户界面是否需要控制蓝牙?创建一个方法turnOnBluetooth(活动活动)并使用它。您真的需要收到您所呼叫的活动的具体结果吗?如果不是,请使用Context或BroadcastReceiver。