【问题标题】:Programmatically connect to a Bluetooth headset from an Android application从 Android 应用程序以编程方式连接到蓝牙耳机
【发布时间】:2011-01-13 07:03:27
【问题描述】:

我正在寻找一种方法来在我的应用程序中启动 Android 手机和耳机之间的音频连接。这个想法是简化连接过程,使用户不必再通过不同的设置菜单(应用程序 -> 设置 -> 无线和网络 -> 蓝牙设置)。

两个设备都应该已经配对并且耳机的蓝牙地址是已知的。

据我所知,蓝牙功能(自 Android SDK 2.0 版起可用)仅限于蓝牙发现以及 Android 手机和蓝牙设备之间的 RFComm 通道(主机/客户端)连接。是否有另一种方法可以在 Android 系统上请求蓝牙配置文件以从应用程序启动与已知设备的连接,或者这不可能?

【问题讨论】:

  • 你找到答案了吗?

标签: android bluetooth


【解决方案1】:

你看过BluetoothAdapter 类吗?除非我误解了这个问题,否则您似乎可以通过该课程完成所需的一切。

至于启动与特定设备的连接,启用蓝牙后手机不会自动与已知设备配对吗?

【讨论】:

  • 如果我理解正确的话,BluetoothAdapter 类只能让我控制 Android 蓝牙堆栈的一部分:使用 BluetoothAdapter,您当然可以发现其他设备并控制蓝牙无线电,但对我来说似乎不可能启动与 RFComm 链接不同的连接。如果我错了,请纠正我......至于自动配对:有时会起作用。然而,大多数时候,我发现自己等待自动连接很长时间(没有成功),这就是我对编程解决方案相当感兴趣的原因。
【解决方案2】:

我正在使用以下代码获取IBluetooth服务,它具有包括连接耳机在内的多种功能。

IBinder b = ServiceManager.getService("bluetooth");
if (b != null) {
        IBluetooth mBluetoothService = IBluetooth.Stub.asInterface(b);
    }

但是,这些api对于app级别是隐藏的,并且在不同的android sdk版本上它们是不同的。您必须遵守android整个源环境中的代码,或者使用反射来访问它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多