
用一个service
//获取适配器 BluetoothAdaptermAdapter= BluetoothAdaptergetDefaultAdapter();
//不做提示,强行打开
if(!mAdapterisEnabled()){
mAdapterenable();
}
BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intentgetAction();
//找到设备
if (BluetoothDeviceACTION_FOUNDequals(action)) {
BluetoothDevice device = intent
getParcelableExtra(BluetoothDeviceEXTRA_DEVICE);
if (devicegetBondState() != BluetoothDeviceBOND_BONDED) {
}
}
//搜索完成
else if (BluetoothAdapterACTION_DISCOVERY_FINISHED
equals(action)) {
if (mNewDevicesAdaptergetCount() == 0) {
Logv(TAG,"find over");
}
}
//执行更新列表的代码 后台这里就不需要更新
}
};
//注册 广播接收者
IntentFilter filter = new IntentFilter(BluetoothDeviceACTION_FOUND);
registerReceiver(mReceiver, filter);
filter = new IntentFilter(BluetoothAdapterACTION_DISCOVERY_FINISHED);
registerReceiver(mReceiver, filter);
//这样就可以 获取到所有的连接对象了 然后在里面选择一个制定的mac地址 使用
BluetoothSocket clienSocket=dcvice createRfcommSocketToServiceRecord(UUID);
clienSocketconnect();
inputStream = socketgetInputStream();
//将对象设备看作服务端 然后get出流 再将流转化成字符串就可以判断服务端发出的命令了 这些都可以在service中完成
纯手打 如有相同答案请看清楚时间先后 杜绝抄袭! 望楼主采纳!~
先明确场景。你是希望如下哪种自动连接?
case1: 手机开机自动连接蓝牙最后配对设备:Android已经在Framework层实现。不需要Apk再做。关键代码如下:
BluetoothDeviceConnectionPolicyjava 里面
onReceive 收到事件BluetoothAdapterSTATE_ON后
else if (BluetoothAdapterACTION_STATE_CHANGEDequals(action)) {
initiateConnection();给状态机发CONNECT
mBluetoothAutoConnectStateMachinesendMessage(BluetoothAutoConnectStateMachineCONNECT);
case2:蓝牙关闭状态,打开蓝牙,自动连接最后使用的设备:Apk层注册监听蓝牙打开的广播,然后在事件响应中获取已配对列表,取第一个去进行连接就好。
注册监听蓝牙打开的广播事件:androidbluetoothadapteractionSTATE_CHANGED
Bluetooth ACTION_STATE_CHANGED curState = 11,preState = 10 打开中
Bluetooth ACTION_STATE_CHANGED curState = 12,preState = 11 打开了。
获取已配对设备列表:BluetoothAdaptergetBondedDevices()
取出第一个设备(也就是最新的),连接:
framework/base/core/java/android/bluetooth/
BluetoothHeadsetClient: connect(device)
BluetoothA2dpSink: connect(device)
A: 安卓开发蓝牙接收数据返回数据处理方式有以下几种:
1 通过InputStream获取蓝牙传输的数据,然后对数据进行处理,例如解析数据,提取有效信息;
2 通过OutputStream向蓝牙发送数据,实现蓝牙数据的发送;
3 通过BluetoothSocket实现蓝牙数据收发,连接蓝牙设备后,两端之间的通信基本上就是发送数据或者接收数据;
4 使用广播机制,在蓝牙接收到正确的数据类型后,通过发送一个广播通知客户端更新数据;
5 使用Handler把从蓝牙接收到的消息发送到主线程,由Handler进行处理和传递数据给UI线程更新UI界面。
以上就是关于安卓开发 蓝牙 后台全部的内容,包括:安卓开发 蓝牙 后台、通过android代码如何实现手机蓝牙自动连接最后一次已配对的设备、安卓开发蓝牙接收数据,返回数据如何处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)