android蓝牙自动配对连接的具体代码如下:
1 获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdaptergetDefaultAdapter();
如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。
2 判断蓝牙模块是否开启,blueadapterisEnabled() true表示已经开启,false表示蓝牙并没启用。
3 启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapterACTION_REQUEST_DISCOVERABLE);
inputExtra(BluetoothAdapterEXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
4 获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadaptergetBondedDevices();
当然,还需要在androidManifestxml中声明蓝牙的权限
<uses-permission android:name="androidpermissionBLUETOOTH" />
<uses-permission android:name="androidpermissionBLUETOOTH_ADMIN" />
5自动配对设置Pin值
static public boolean autoBond(Class btClass, BluetoothDevice device, String strPin)
throws Exception {
Method autoBondMethod = btClassgetMethod("setPin", new Class[] { byte[]class });
Boolean result = (Boolean) autoBondMethod
invoke(device, new Object[] { strPingetBytes() });
return result;
}
6开始配对请求
static public boolean createBond(Class btClass, BluetoothDevice device) throws Exception {
Method createBondMethod = btClassgetMethod("createBond");
Boolean returnValue = (Boolean) createBondMethodinvoke(device);
return returnValuebooleanValue();
}
GenericBluetoothAdapter这个是系统自带的驱动,蓝牙不能用的解决方法如下参考:
1.点击桌面右下角的网络图标,点击“网络”界面中的“查看连接类型”按钮。
2.在公开网络设置屏幕,切换到FlightMode选项卡并找到蓝牙,如下图参考。
3.通过控制面板进入网络与共享中心界面,右键点击蓝牙网络连接图标,在右键菜单中选择查看蓝牙网络设备打开,如下图。
4.打开手机等蓝牙功能,打开“打开检测”功能,笔记本电脑即可搜索此蓝牙功能,如下他参考。
5.设备和打印机-蓝牙个人区域设备界面,点击添加设备按钮,从添加设备界面中找到要连接的蓝牙设备,点击下一步按钮。
6.从打开的比较密码界面,完成之间的匹配 *** 作手机和电脑的蓝牙设备根据“密码”提示的信息窗口。
7.最后,在安装相关设备驱动程序在Windows系统,安装完成就可以解决连接蓝牙的问题。
使用蓝牙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的客户时一个接口(即运行一个特定的配置文件,内部服务)。
使用BluetoothAdapter类提供的方法getRemoteDevice 创建BluetoothDevice实例。
提醒一句,BluetoothAdapter实例应使用 BluetoothAdaptergetDefaultAdapter ()静态方法获取。
以下摘译自android文档。
public BluetoothDevice getRemoteDevice (String address)
Since: API Level 5
Get a BluetoothDevice object for the given Bluetooth hardware address
Valid Bluetooth hardware addresses must be upper case, in a format such as "00:11:22:33:AA:BB" The helper checkBluetoothAddress(String) is available to validate a Bluetooth address
通过指定的硬件地址获取BluetoothDevice对象。有效的蓝牙硬件地址必须是形如"00:11:22:33:AA:BB"的大写字符串。可使用辅助方法checkBluetoothAddress(String)校验地址(格式)的有效性。
A BluetoothDevice will always be returned for a valid hardware address, even if this adapter has never seen that device
如地址有效则一个对应的BluetoothDevice对象被返回,即使适配器并未发现该设备。
Parameters 参数
address valid Bluetooth MAC address 有效的蓝牙MAC地址
Throws
IllegalArgumentException if address is invalid
以上就是关于如何实现android蓝牙开发 自动配对连接,并不d出提示框全部的内容,包括:如何实现android蓝牙开发 自动配对连接,并不d出提示框、Generic Bluetooth Adapter这个是什么,是硬件还是软件,怎么戴尔N4110的蓝牙不能用。、android开发怎样及时获取蓝牙断开的转台等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)