使用蓝牙API,可以做到:搜索蓝牙设备从本地的Bluetoothadapter中查询已经配对的设备建立RFCOMM通道通过servicediscovery连接到其它设备在设备之间传输数据管理多个连接基础知识:主要包含四个部分:蓝牙设置、搜索设备(配对的或可见的)、连接、传输数据。所有的蓝牙API在androidbluetooth包中。实现这些功能主要需要下面这几个类和接口:BluetoothAdapter代表本地蓝牙适配器(蓝牙发射器),是所有蓝牙交互的入口。通过它可以搜索其它蓝牙设备,查询已经配对的设备列表,通过已知的MAC地址创建BluetoothDevice,创建BluetoothServerSocket监听来自其它设备的通信。BluetoothDevice代表了一个远端的蓝牙设备,使用它请求远端蓝牙设备连接或者获取远端蓝牙设备的名称、地址、种类和绑定状态。(其信息是封装在bluetoothsocket中)。BluetoothSocket代表了一个蓝牙套接字的接口(类似于tcp中的套接字),他是应用程序通过输入、输出流与其他蓝牙设备通信的连接点。BluetoothServerSocket代表打开服务连接来监听可能到来的连接请求(属于server端),为了连接两个蓝牙设备必须有一个设备作为服务器打开一个服务套接字。当远端设备发起连接连接请求的时候,并且已经连接到了的时候,Blueboothserversocket类将会返回一个bluetoothsocket。BluetoothClass描述了一个设备的特性(profile)或该设备上的蓝牙大致可以提供哪些服务(service),但不可信。比如,设备是一个电话、计算机或手持设备;设备可以提供audio/telephony服务等。可以用它来进行一些UI上的提示。BluetoothProfileBluetoothHeadset提供手机使用蓝牙耳机的支持。这既包括蓝牙耳机和免提(V15)模式。BluetoothA2dp定义高品质的音频,可以从一个设备传输到另一个蓝牙连接。“A2DP的”代表高级音频分配模式。BluetoothHealth代表了医疗设备配置代理控制的蓝牙服务BluetoothHealthCallback一个抽象类,使用实现BluetoothHealth回调。你必须扩展这个类并实现回调方法接收更新应用程序的注册状态和蓝牙通道状态的变化。BluetoothHealthAppConfiguration代表一个应用程序的配置,蓝牙医疗第三方应用注册与远程蓝牙医疗设备交流。BluetoothProfileServiceListener当他们已经连接到或从服务断开时通知BluetoothProfileIPX的客户时一个接口(即运行一个特定的配置文件,内部服务)。
Android 蓝牙编程的基本步骤: 获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdaptergetDefaultAdapter(); 如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。判断蓝牙模块是否开启,blueadapterisEnabled() true表示已经开启,false表示蓝牙并没启用。启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapterACTION_REQUEST_DISCOVERABLE); inputExtra(BluetoothAdapterEXTRA_DISCOVERABLE_DURATION, 200); startActivity(in); ,200就表示200秒。获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadaptergetBondedDevices(); 还需要在androidManifestxml中声明蓝牙的权限 <uses-permission android:name="androidpermissionBLUETOOTH" /> <uses-permission android:name="androidpermissionBLUETOOTH_ADMIN" /> 接下来就是根据自己的需求对BluetoothAdapter 的 *** 作了。
抓取HCI日志方法
手机必须是root版本
将手机目录中的/etc/bluetooth/bt_stackconf文件pull出来
并将文件以下默认值修改为6 在push到手机中
TRC_BTM=2
TRC_HCI=2
TRC_L2CAP=2
TRC_RFCOMM=2
TRC_OBEX=2
TRC_AVCT=2
TRC_AVDT=2
TRC_AVRC=2
TRC_AVDT_SCB=2
TRC_AVDT_CCB=2
TRC_A2D=2
TRC_SDP=2
TRC_SMP=2
TRC_BTAPP=2
TRC_BTIF=2
TRC_BNEP=2
TRC_PAN=2
TRC_HID_HOST=2
TRC_HID_DEV=2
然后 设置prop属性值
adb shell setprop persistbluetoothbtsnoopenable true
重启手机 开始抓取log
复现过后 将手机中 /data/misc/bluetooth/logs/目录导出来即可
手机的蓝牙开启步骤如下:
第一,打开手机,进入主菜单,选择设定进入。
第二,进去之后可以看到有个蓝牙菜单,然后点击灰色的位置变成绿色,蓝牙就开启了。
以下是蓝牙开启的示意图:
打开 蓝牙 打开 发现 (一般安卓蓝牙都要打开发现 除非之前配对过)或许有些机子会不能接收或发送特殊格式“如:apk格式”你可以在后面加"MP3" 变成 MP3格式这样就能发送了收到之后把名字"MP3"去掉这样会变回之前的apk格式就能安装了
找不到已关闭的蓝牙耳机。蓝牙耳机关闭时无法连接手机,必须开启。开机有两种状态,一种是正常使用状态,一种是配对状态。如果耳机首次连接到设备,则必须处于配对状态才能使用。此外,蓝牙耳机不具备防丢失报警功能。只要耳机在用户10m以内,就可以开机配对,还可以搜索蓝牙耳机的名称。如果你在附近,可以试着按照搜索范围去找。扩展信息:注意事项:避免反复拔插:这就像一个工具,反复使用后必然容易坏掉,这也是为什么我们要避免反复拔插耳塞的原因。这是保养耳塞的重要方法。避免将耳塞线对折:这是因为耳塞线属于金属,如果对折过猛,金属会断裂。所以在使用耳塞的时候,折叠线需要有一定的弧度。
安卓系统使用蓝牙的方法:
首先要在安卓系统设备(如手机、平板电脑)、蓝牙设备(如耳机、导航仪、音箱、键盘、打印机)之间建立配对关系,方法是:
1、分别开启安卓系统设备(如手机、平板电脑)、蓝牙设备(如耳机、导航仪、音箱、键盘、打印机)的蓝牙功能,并将安卓系统设备(如手机、平板电脑)、设置为“所有人可见”;
2、在安卓系统设备(如手机、平板电脑)中搜索蓝牙设备,查找到之后选中进行连接,这时显示要输入配对密码,一般是:0000,输入完成配对后,显示连接成功即可。
3、拨打电话或进行数据传输。
以上就是关于android开发怎样及时获取蓝牙断开的转台全部的内容,包括:android开发怎样及时获取蓝牙断开的转台、确认Android中是否有蓝牙的工具hciconfig、Android 抓取蓝牙hci日志方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)