0

我是 Java 和 Android 的新手,我正在尝试弄清楚如何执行以下操作。顺便说一句,我发现官方的谷歌 Android 文档不适合新手,并且希望任何推荐给更多的东西......非本地程序员友好。

好的,这里是:

我想在插入/拔出手机(电脑或交流电)时自动打开/关闭蓝牙。

所以,我找到了以下组件:

BatteryManager:似乎使用ACTION_BATTERY_CHANGED意图是要走的路,并在这种情况发生变化时设置广播接收器。这是正确的吗?

我还找到了 BluetoothAdapter,其中有 enable() 方法。其中说:“不要在没有明确用户操作的情况下打开蓝牙。” - 插入电话是明确的用户操作吗?这是适合我使用的东西吗?当然,disable() 也是如此。

此外,BroadcastReceiver我在互联网上看到的示例仅向我展示了如何启动意图 - 通常是打开一个新活动。我假设我可以让广播接收器启动一种方法来打开和关闭蓝牙?意图可以是一种方法,而不仅仅是活动吗?

任何帮助,将不胜感激!

4

1 回答 1

0

BatteryManager:似乎使用 ACTION_BATTERY_CHANGED 意图是要走的路,并在这种情况发生变化时设置广播接收器。这是正确的吗?

是的,这是一种监控诸如何时连接充电器(包括插入具有充电功能的 USB 端口)之类的事情的方法。您也可以使用ACTION_POWER_CONNECTED.

插入电话是明确的用户操作吗?

否 - 除非您创建一个要求用户同意的弹出窗口,否则绝对不会。要引用该enable()方法的文档...

未经用户直接同意,绝不应启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用 ACTION_REQUEST_ENABLE Intent,这将引发一个对话框,请求用户允许打开蓝牙。enable() 方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。

当我将设备插入充电时,十分之九我不希望它做任何事情,只是充电。如果我在手机上安装了您的应用程序并发现它在我不知情的情况下默默启用蓝牙,您的应用程序将立即卸载。

蓝牙存在已知的安全问题,根据用户设置,如果在某人不知情的情况下启用它,您可能会使某人的设备处于危险之中。

意图可以是一种方法,而不仅仅是活动吗?

不,anIntent是消息传递系统的一部分。请参阅意图和意图过滤器。是的,我知道它不是很“适合新手”,但 Android 是一个复杂的野兽,如果你真的想成功地为它编程,你必须阅读这类东西。

于 2012-02-23T21:05:36.850 回答