bluetoothheadset6大著數

Android 提供 BluetoothA2dp 类,该类是用于控制蓝牙 A2DP 服务的代理。 UUID 是一种标准化的 128 位格式,可供字符串 ID 用来对信息进行唯一标识。 UUID 的特点是其足够庞大,因此您可以选择任意随机 ID,而不会与其他任何 ID 发生冲突。 在本例中,其用于对应用的蓝牙服务进行唯一标识。

蓝牙配置文件是适用于设备间蓝牙通信的无线接口规范。 如需了解有关配置文件的详细讨论,请参阅使用配置文件。 BluetoothHeadset提供蓝牙耳机支持,以便与手机配合使用。 这包括蓝牙耳机配置文件和免提 (v1.5) 配置文件。 BluetoothA2dp 定义如何使用蓝牙立体声音频传输配置文件 ,通过蓝牙连接将高质量音频从一个设备流式传输至另一个设备。 BluetoothHealth 表示用于控制蓝牙服务的健康设备配置文件代理。

bluetoothheadset: 查询已配对设备

但是,只有在当下接受信息请求时,附近区域的蓝牙设备才会通过启用可检测性响应发现请求。 如果设备已启用可检测性,它会通过共享一些信息(例如设备的名称、类及其唯一的 MAC 地址)来响应发现请求。 借助此类信息,执行发现过程的设备可选择发起对已检测到设备的连接。 bluetoothheadset 本文介绍不同的蓝牙配置文件,包括健康设备配置文件。 当客户端调用此方法后,系统会执行 SDP 查找,以找到带有所匹配 bluetoothheadset UUID 的远程设备。

该进程为异步操作,并且会返回一个布尔值,指示发现进程是否已成功启动。 发现进程通常包含约 12 秒钟的查询扫描,随后会对发现的每台设备进行页面扫描,以检索其蓝牙名称。 如果您计划在执行蓝牙 Activity 之前一直启用设备的可检测性,则可以跳过上述步骤 2。

bluetoothheadset: 创建 HDP 应用

但是,如果应用需要确定是否正在执行设备发现,您可以使用 isDiscovering() 进行检测。 通过调用 accept() 开始侦听连接请求。 当服务器接受连接或异常发生时,该调用便会返回。 只有当远程设备发送包含 UUID 的连接请求,并且该 UUID 与使用此侦听服务器套接字注册的 UUID 相匹配时,服务器才会接受连接。 连接成功后,accept() 将返回已连接的 BluetoothSocket。 这样便可发出启用系统可检测到模式的请求,从而无需导航至设置应用,避免暂停使用您的应用。

  • 如果设备已启用可检测性,它会通过共享一些信息(例如设备的名称、类及其唯一的 MAC 地址)来响应发现请求。
  • 借助此类信息,执行发现过程的设备可选择发起对已检测到设备的连接。
  • SCAN_MODE_CONNECTABLE_DISCOVERABLE 设备处于可检测到模式。
  • 如果您要发起对远程设备的连接,则无需启用设备可检测性。
  • 如要开始发现设备,只需调用 startDiscovery()。
  • 如果用户响应“No”或出现错误,则结果代码为 RESULT_CANCELED。

除非应用是根据用户请求修改蓝牙设置的“超级管理员”,否则不应使用此权限所授予的其他功能。 发送传出数据不外乎从主 Activity 调用线程的 write() 方法,并传入要发送的字节。 此方法会调用 write(byte[]),从而将数据发送到远程设备。 应用特定 manageMyConnectedSocket() 方法旨在启动用于传输数据的线程(详情请参阅管理连接部分)。 通常,在完成传入连接的侦听后,您应立即关闭您的 BluetoothServerSocket。

bluetoothheadset: 蓝牙概览

如要发起与蓝牙设备的连接,您只需从关联的 BluetoothDevice 对象获取 MAC 地址,您可通过调用 getAddress() 检索此地址。 例如,应用可接收指示所连接设备电池电量的广播,并根据需要通知用户或采取其他操作。 为 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT Intent 创建广播接收器,以处理耳机的供应商特定 AT 命令。

bluetoothheadset

此类信息可能来自用户自己的设备,以及在商店和交通设施等位置使用的蓝牙信标。 注意:您应始终调用 cancelDiscovery(),以确保设备在您调用 connect() 之前不会执行设备发现。 如果正在执行发现操作,则会大幅降低连接尝试的速度,并增加连接失败的可能性。 如图 2 所示,系统将显示对话框,请求用户允许将设备设为可检测到模式。 如果用户响应“Yes”,则设备会变为可检测到模式,并在指定时间内保持该模式。 然后,您的 Activity bluetoothheadset 将会收到对 onActivityResult() 回调的调用,其结果代码等于设备可检测到的持续时间。

bluetoothheadset: 健康设备配置文件

在使用 Bluetooth API 发起加密连接时,系统会自动执行配对。 成功连接至健康设备后,使用文件描述符对健康设备执行读/写操作。 接收的数据需使用实现 IEEE 规范的健康管理器进行解释。 从 Android 3.0 开始,Bluetooth API 便支持使用蓝牙配置文件。 如果手机要与无线耳机进行连接,则两台设备都必须支持免提配置文件。 如果您想让应用启动设备发现或操纵蓝牙设置,则除了 BLUETOOTH 权限以外,您还必须声明 BLUETOOTH_ADMIN 权限。

BluetoothServerSocket表示用于侦听传入请求的开放服务器套接字(类似于 TCP ServerSocket)。 如要连接两台 Android 设备,其中一台设备必须使用此类开放一个服务器套接字。 当远程蓝牙设备向此设备发出连接请求时,该设备接受连接,然后返回已连接的 BluetoothSocket。 BluetoothClass描述蓝牙设备的一般特征和功能。 虽然这些信息会提供关于设备类型的有用提示,但该类的属性未必描述设备支持的所有蓝牙配置文件和服务。 BluetoothProfile表示蓝牙配置文件的接口。

bluetoothheadset: 支持

如果用户响应“No”或出现错误,则结果代码为 RESULT_CANCELED。 注意:如果您将 bluetoothheadset EXTRA_DISCOVERABLE_DURATION Extra 属性的值设置为 0,则设备将始终处于可检测到模式。 注意:执行设备发现将消耗蓝牙适配器的大量资源。

bluetoothheadset

BluetoothAdapter表示本地蓝牙适配器(蓝牙无线装置)。 BluetoothAdapter 是所有蓝牙交互的入口点。 BluetoothDevice表示远程蓝牙设备。 借助该类,您可以通过 BluetoothSocket 请求与某个远程设备建立连接,或查询有关该设备的信息,例如设备的名称、地址、类和绑定状态等。 BluetoothSocket表示蓝牙套接字接口(类似于 TCP Socket)。 这是允许应用使用 InputStream 和 bluetoothheadset OutputStream 与其他蓝牙设备交换数据的连接点。

bluetoothheadset: 连接设备

通过调用 listenUsingRfcommWithServiceRecord() 获取 BluetoothServerSocket。 该字符串是服务的可识别名称,系统会自动将其写入到设备上的新服务发现协议 数据库条目。 SDP 条目中也包含通用唯一标识符 ,这也是客户端设备连接协议的基础。 换言之,当客户端尝试连接此设备时,它会携带 UUID,从而对其想要连接的服务进行唯一标识。 为了让服务器接受连接,这些 UUID 必须互相匹配。 SCAN_MODE_CONNECTABLE_DISCOVERABLE 设备处于可检测到模式。

在此示例中,获取 BluetoothSocket 后会立即调用 close()。 此外,您可能还希望在线程中提供一个公共方法,以便在需要停止侦听服务器套接字时关闭私有 BluetoothSocket。 应用特定的 manageMyConnectedSocket() 方法旨在启动用于传输数据的线程(详情请参阅管理连接部分)。 如果您无需接受更多连接,请调用 close()。

bluetoothheadset: 发现设备

但是,这两台设备仍保持绑定状态,因此在未来的会话期间,只要二者在彼此的范围内且均未移除绑定,便可自动重新连接。 如要在两台设备之间创建连接,您必须同时实现服务器端和客户端机制,因为其中一台设备必须开放服务器套接字,而另一台设备必须使用服务器设备的 MAC 地址发起连接。 服务器设备和客户端设备均会以不同方法获得所需的 BluetoothSocket。

  • 针对具有低功耗要求的蓝牙设备,Android 4.3(API 级别 18)中引入了面向低功耗蓝牙的 API 支持。
  • 用户可通过系统设置将设备设为在有限的时间内处于可检测到状态,或者,应用可请求用户在不离开应用的同时启用可检测性。
  • 只有当您希望应用对接受传入连接的服务器套接字进行托管时,才有必要启用可检测性,因为在发起对其他设备的连接之前,远程设备必须能够发现这些设备。
  • 如要在应用中使用蓝牙功能,您必须声明两个权限。
  • 蓝牙立体声音频传输配置文件 定义如何通过蓝牙连接和流式传输,将高质量音频从一个设备传输至另一个设备。

BluetoothHealthCallback用于实现 BluetoothHealth 回调的抽象类。 您必须扩展此类并实现回调方法,以接收关于应用注册状态和蓝牙通道状态变化的更新内容。 BluetoothHealthAppConfiguration表示第三方蓝牙健康应用注册的应用配置,该配置旨在实现与远程蓝牙健康设备的通信。 为了让支持蓝牙的设备能够在彼此之间传输数据,它们必须先通过配对过程形成通信通道。

bluetoothheadset: 管理连接

在找到要连接的设备后,请务必使用 cancelDiscovery() 停止发现,然后再尝试连接。 此外,您不应在连接到设备的情况下执行设备发现,因为发现过程会大幅减少可供任何现有连接使用的带宽。 bluetoothheadset 如图 1 所示,系统将显示对话框,请求用户允许启用蓝牙。 如果用户响应“Yes”,系统会开始启用蓝牙,并在该进程完成(或失败)后将焦点返回您的应用。

如要在应用中使用蓝牙功能,您必须声明两个权限。 您需要此权限才能执行任何蓝牙通信,例如请求连接、接受连接和传输数据等。 请注意,此段代码在尝试连接之前先调用了 cancelDiscovery()。

用户可通过系统设置将设备设为在有限的时间内处于可检测到状态,或者,应用可请求用户在不离开应用的同时启用可检测性。 如需了解更多信息,请参阅本页面的启用可检测性部分。 具体来说,您应使用专门的线程从数据流读取数据,以及将数据写入数据流。

借助线程的 cancel() 方法,您可通过关闭 BluetoothSocket 随时终止连接。 请注意,如果 accept() 返回 BluetoothSocket,则表示已连接套接字。 因此,您不应像从客户端那样调用 connect()。 使用 getProfileProxy() 与配置文件所关联的配置文件代理对象建立连接。

如要获取供应用使用的 UUID,您可以从网络上的众多随机 UUID 生成器中任选一种,然后使用 fromString 初始化一个 UUID。 一种实现技术是自动将每台设备准备为一个服务器,从而使每台设备开放一个服务器套接字并侦听连接。 在此情况下,任一设备都可发起与另一台设备的连接,并成为客户端。 或者,其中一台设备可显式托管连接并按需开放一个服务器套接字,而另一台设备则发起连接。 如要开始发现设备,只需调用 startDiscovery()。

bluetoothheadset: 支持

在以下示例中,配置文件代理对象是一个 BluetoothHeadset 实例。 由于 connect() 是阻塞调用,因此您应始终在主 Activity(界面)线程以外的线程中执行此连接步骤。 使用完 BluetoothSocket 后,请务必调用 close()。 这样,您便可立即关闭连接的套接字,并释放所有相关的内部资源。

bluetoothheadset: 发现设备

如果查找成功并且远程设备接受连接,则其会共享 RFCOMM 通道以便在连接期间使用,并且 bluetoothheadset connect() 方法将会返回。 如果连接失败,或者 connect() 方法超时(约 12 秒后),则此方法将引发 IOException。 如果远程设备在开放服务器套接字上接受连接,则为了发起与此设备的连接,您必须首先获取表示该远程设备的 BluetoothDevice 对象。

由香港SEO公司 featured.com.hk 提供SEO服務

Similar Posts