我是Java和Android的新手,我正在试图弄清楚如何执行以下操作。顺便说一句,我发现官方谷歌Android文档不适合新手,并希望任何更多的推荐...非本地程序员友好。
好的,这里是:
我想在插入/拔出手机时自动打开/关闭蓝牙 - 电脑或电话。
所以,我找到了以下组件:
BatteryManager:似乎使用ACTION_BATTERY_CHANGED
意图是要走的路,并设置一个广播接收器,以便在此时发生变化。这是对的吗?
我也找到了BluetoothAdapter,其中有enable()方法。其中说:“如果没有明确的用户操作,请不要使用蓝牙。” - 正在插入手机的明确用户动作?这对我来说是正确的吗?当然,对于disable()也是如此。
此外,我在互联网上看到的BroadcastReceiver
示例仅向我展示了如何启动意图 - 通常是打开一项新活动。我假设我可以让广播接收器启动一种方法,我将打开和关闭蓝牙?意图可以是一种方法,而不仅仅是活动吗?
任何帮助将不胜感激!
答案 0 :(得分:0)
BatteryManager:似乎可以使用ACTION_BATTERY_CHANGED意图,并在此更改时设置广播接收器。这是对的吗?
是的,这是一种监控连接充电器的方法(包括插入具有充电功能的USB端口)。您也可以使用ACTION_POWER_CONNECTED
。
正在为手机插入明确的用户操作吗?
不 - 除非您创建一个要求用户同意的弹出窗口,否则绝对不会。引用enable()
方法的文档...
未经用户同意,不得启用蓝牙。如果要打开蓝牙以创建无线连接,应使用ACTION_REQUEST_ENABLE意图,这会引发对话请求用户启用蓝牙的权限。 enable()方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“power manager”应用程序。
当我插入设备进行充电时,10次中有9次我不想让它做任何事情而是充电。如果我在手机上安装了您的应用程序并发现它在我不知情的情况下默默启用蓝牙,那么您的应用程序将立即卸载。
蓝牙存在已知的安全问题,并且根据用户设置,如果在他们不知情的情况下启用了某人的设备,则可能会使其受到威胁。
意图是一种方法,而不仅仅是活动吗?
不,Intent
是邮件系统的一部分。见Intents and Intent Filters。是的,我知道它不是'新手友好',但Android是一个复杂的野兽,如果你真的想成功编程,你必须阅读这类东西。