蓝牙学习小结1

想要蓝牙通信必须明确以下几个知识点意义:
~1,检测设备是否支持蓝牙?


BluetoothAdapter badapter = BluetoothAdapter.getDefaultAdapter();//获取蓝牙适配器
badapter == null?设备不支持蓝牙:设备支持蓝牙;




~2,检测蓝牙是否开启?开启方法?
------------------------------------------------------------------------------------------
*此打开方法为静默打开需要添加两个权限:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permisiion android:name="android.permission.BLUETOOTH_ADMIN"/>
------------------------------------------------------------------------------------------
if(!badapter.isEnable){
badapter.enable(); //开启\关闭方法为:badapter.disable();
}


~3,如何让本设备可以被其他设备发现搜索?


Intent enable = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//3600秒为蓝牙设备可见时间
enable.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600); 
startActivity(enable);


~4,检测蓝牙是否正在搜索周围设备方法?开启关闭蓝牙搜索周围设备方法?


badapter.isDiscovering()?开启:关闭; //检测 方法
badapter.startDiscovery(); //开启方法
badapter.cancelDiscovery(); //关闭方法

~5,蓝牙配对、连接的方法?
public static BluetoothSocket connect(BluetoothDevice device) throws IOException {
// 固定的UUID
final String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
UUID uuid = UUID.fromString(SPP_UUID);
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid);
socket.connect();
return socket;
}

~6,服务端监控的方法?

//监听此服务的1101uuid端口获取BluetoothServerSocket
bss = ba.listenUsingRfcommWithServiceRecord(Utils.NAME, Utils.uuid);
//获取BluetoothSocket
if(serverSocket!=null){
BluetoothSocket bs = bss.accept();
{


~7,BluetoothSocket和BluetoothServerSocket的区别和意义?


BluetoothSocket 是客户端socket
BluetoothServerSocket 是服务端socket
每次发送信息,只有两个角色一个是客户端c一个是服务端s,c发送信息、
s接受信息、当s想给c发送信息时,s需要accept()获取BluetoothSocket socket,
然后通过socket.getOutputStream()获取输出流write()进行传送信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值