安卓开发 蓝牙 后台

安卓开发 蓝牙 后台,第1张

用一个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代码如何实现手机蓝牙自动连接最后一次已配对的设备、安卓开发蓝牙接收数据,返回数据如何处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9351650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存