【问题标题】:Broadcast if a bluetooth device is connecting/disconnecting?如果蓝牙设备正在连接/断开连接,则广播?
【发布时间】:2011-11-04 08:08:19
【问题描述】:

我想在连接特定蓝牙设备时启动服务,并在断开连接时停止该服务。 显然我不想让后台服务一直检查是否连接了 BT 设备,所以我想用 Receiver 来实现。

这真的可能吗? android.bluetooth.device.action.ACL_CONNECTED 提到了here,但显然它不起作用。

谢谢!

【问题讨论】:

    标签: android bluetooth broadcastreceiver


    【解决方案1】:
    <intent-filter>
        <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
        <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
    </intent-filter>
    

    这些是您必须使用广播接收器添加的过滤器。

    ACL_CONNECTED 表示蓝牙连接,ACL_DISCONNECTED 表示蓝牙断开

    对于特定设备,您必须检查广播接收器中的意图/上下文

    您必须添加的两个权限是:

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    

    我认为这应该可以解决您的问题。

    【讨论】:

    • 成功了,谢谢!我以为 ACL_CONNECTED 仅适用于音频设备^^
    • 以防万一有人使用此代码,如果用户关闭蓝牙,则不会调用 ACL_DISCONNECT_REQUESTED 和 ACL_DISCONNECTED!
    • 是的,它没有。只有当数据要通过蓝牙传输并且停止传输但您必须使用蓝牙代码来检查蓝牙是关闭还是打开时,它才会被调用(根据我在代码中的使用方式)
    • 我的问题是在与设备连接期间触发了此事件!我该怎么办??
    • 请澄清您的问题,我建议发布一个单独的问题,以便它可以接触到很多人
    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多