当前位置:   article > 正文

android 蓝牙的那些坑_android 蓝牙传输坑

android 蓝牙传输坑

本来想开发一款蓝牙软件,因为网上已经有各种教程,所以本来是没必要继续开一编文章来说些什么的,但是亲自体验过后发现,实际上Android与Android之间的蓝牙通讯实在有不少坑,唯有自己总结一下并记录下来

//采用端口进行链接,这里值得注意的是,网上基本上第二个参数都表示1,其实这个数值可以是1-30,表示通过1-30之间的某个端口来进行连接

Device.getClass().getMethod("createRfcommSocket", new Class[]{int.class}); method.invoke(device, 1);
  • 1

如果手机之间通过蓝牙通信,那么必须服务器先以UUID来创建,客户端才可以用createRfcommSocketToServiceRecord…..UUID来链接获得socket,否则永远timeout,除非使用上述的端口连接,既然使用蓝牙端口连接,那么同样的道理服务端也应使用端口创建
常用的服务器名:bpssp

手机作为服务器的话,soctet.getInputStream()会累积所有未接收的数据流缓存

蓝牙多机链接的话,允许6-8台机器对服务器进行连接,此时服务器应存在一条线程专门负责接收其他机器的链接信息,另一条线程负责处理对应机器的业务

class OtherServer implements Runnable {
        @Override
        public void run() {
            try {
                createLog("createing server");
                bluetoothAdapter =     BluetoothAdapter.getDefaultAdapter();
                serverSoctet = bluetoothAdapter.listenUsingRfcommWithServiceRecord("btspp", UUID.fromString(uuid));
                while (true) {
                    createLog("waiting connection");
                    BluetoothSocket soctet = serverSoctet.accept();
                    new Thread(new ServerThread(soctet)).start();
                }
            } catch (Exception e) {

            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

亲测4.0的蓝牙传输距离在无障碍的环境下,可以达到数十米

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/956087
推荐阅读
相关标签
  

闽ICP备14008679号