美文网首页
bluetooth 安卓

bluetooth 安卓

作者: 招风小妖怪 | 来源:发表于2019-10-15 18:03 被阅读0次

搜索配对什么的在手机系统设置里就能完成,本人太懒暂时没学,哎
每个代码块都可以独立运行,如果要和在一起,记得把多定义的变量删除

这篇文章将的内容如下,

判断是否支持蓝牙
判断蓝牙是否打开
打开蓝牙
搜索蓝牙
蓝牙配对
查看已经配对的设备
连接蓝牙
发送数据
接收数据

配置权限

image.png
<!-- 安卓6.0以下 -->
<!-- 使用蓝牙的权限 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- 扫描蓝牙设备或者操作蓝牙设置 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

<!-- 安卓6.0以上 -->
<!-- 使用蓝牙的权限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- 扫描蓝牙设备或者操作蓝牙设置 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!--模糊定位权限,仅作用于6.0+-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--精准定位权限,仅作用于6.0+-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

判断是否支持蓝牙

BluetoothAdapter mBluetoothAdapter;
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if(mBluetoothAdapter == null){
    // 说明此设备不支持蓝牙操作
}else {
    // 说明此设备支持蓝牙操作
}

判断蓝牙是否打开,没有就打开蓝牙

BluetoothAdapter mBluetoothAdapter;
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(!mBluetoothAdapter.isEnabled()){
    //蓝牙没有打开
    mBluetoothAdapter.enable();//打开蓝牙
}else
{
    //蓝牙已经打开了
}

查看已经配对的设备

BluetoothAdapter mBluetoothAdapter;
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if(pairedDevices.size() > 0){
    for(BluetoothDevice device:pairedDevices){
        // 这里打印出来的就是已经配对的设备名和mac地址
      //可以记下你要连接的蓝牙mac地址,等下连接要用
        System.out.println("\n===="+device.getName()+" : "+ device.getAddress());

    }
}

连接蓝牙设备

BluetoothAdapter mBluetoothAdapter;//你自己的手机蓝牙
BluetoothDevice device;//你准备连接哪个蓝牙
BluetoothSocket socket;//连接成功后返回的socket服务,类似TCP的socket
String remoteDevMac="20:19:05:14:22:94";//选一个已经配对的设备的mac地址,
String MY_UUID = "00001101-0000-1000-8000-00805F9B34FB";   //SPP服务UUID号,
//这个自行百度,不同的UUID可以提供不同的服务,
//我这里这个UUID说明使用的是串口服务
try{
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    device = mBluetoothAdapter.getRemoteDevice(remoteDevMac);
    socket = device.createRfcommSocketToServiceRecord(UUID.fromString(MY_UUID));
    socket.connect();
    //连接成功
}catch(IOException e){
    //连接失败
}

发送消息//前提要连接成功

OutputStream os = socket.getOutputStream();
os.write("hello".getBytes());//发送hello

接收消息//前提要先连接

新建一个线程用来接收

private InputStream is;//这个放在类的私有变量里
is = socket.getInputStream();//这句放在你连接成功之后,不然报错
new Thread(){
    public void run(){
        int num = 0;
        byte[] buffer = new byte[1024];
        byte[] buffer_new = new byte[1024];
        int i = 0;
        int n = 0;
        while(true)
        {
            try {

                if(socket!=null && socket.isConnected()) {

                    num = is.read(buffer);//获取本次读取长度
//
                    for(i=0;i<num;i++){
                        if((buffer[i] == 0x0d)&&(buffer[i+1]==0x0a)){
                            //收到0x0d 0x0a才算结束,你也可以自定义结束符号
                            String str = new String(buffer_new, 0, n);
                            System.out.println("=================:"+str+"---"+n);//打印收到的数据和数据的长度

                            i++;//一定要加上,因为本次读取0x0d,下一次不用读取0x0a,让他跳过
                            n=0;
                        }else{
                            buffer_new[n] = buffer[i];
                            n++;
                        }

                    }
                }

            }catch(IOException e){
                System.out.println("=========================接收出错===============================");

            }
        }
    }
}.start();

相关文章

  • bluetooth 安卓

    搜索配对什么的在手机系统设置里就能完成,本人太懒暂时没学,哎每个代码块都可以独立运行,如果要和在一起,记得把多定义...

  • android蓝牙专题

    深入了解Android蓝牙Bluetooth ——《总结篇》 安卓蓝牙应用程序编写步骤 蓝牙 bluetooth-...

  • 低功耗蓝牙原理与实现

    最近公司提出一个需求:如果当前安卓手机支持BLE(Bluetooth Low Energy 低功耗蓝牙),则需要将...

  • 低功耗蓝牙原理与实现

    最近公司提出一个需求:如果当前安卓手机支持BLE(Bluetooth Low Energy 低功耗蓝牙),则需要将...

  • 安卓Koltin Bluetooth蓝牙开发案例

    具体代码参考GitHub项目点击跳转到GitHub项目地址:BluetoothConnectSample 蓝牙设备...

  • 安卓开发 开发前你需要了解的一些资料(一)

    前言   在安卓开发 初步了解安卓和配置安卓环境中,我们简单的介绍了安卓和配置安卓环境。我们使用了Android ...

  • 安卓自定义View-画圆

    效果图 代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开发工...

  • 安卓动画样例-圆环变多变少

    效果图 代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开发工...

  • 安卓动画样例-放大缩小

    效果图 实现代码 安卓开发入门教程系列汇总 安卓发展历程及前景 安卓发展历程 安卓开发前景展望 初探安卓 安装开...

  • 【资源汇总】Android应用解决方案全攻略

    安卓广告联盟解决方案: 安卓消息推送解决方案: 安卓应用安全解决方案: 安卓统计分析解决方案: 安卓后端存储解决方...

网友评论

      本文标题:bluetooth 安卓

      本文链接:https://www.haomeiwen.com/subject/qsosmctx.html