学习路上的小刘 2021-09-22 22:26 采纳率: 66.7%
浏览 274
已结题

uni-app 里面的蓝牙api 就是我打包成app 然后在手机上搜索蓝牙设备,一直搜索不到,但是我真机调试的时候很快就能搜索的到,请问这改如何解决呢,是发行需要点击勾选哪几个模块吗

uni-app 里面的蓝牙api 就是我打包成app 然后在手机上搜索蓝牙设备,一直搜索不到,但是我真机调试的时候很快就能搜索的到
请问该如何解决

贴上我的代码

onLoad(options) {  
        this.type = options.type  
        let that = this  
        uni.onBluetoothAdapterStateChange((res) => {  
            that.searching = res.discovering  
            if (!res.available) {  
                that.searching = false  
            }  
        });  
        uni.onBluetoothDeviceFound((devices) => {  
            //剔除重复设备,兼容不同设备API的不同返回值  
            var isnotexist = true;  
            if (devices.deviceId) {  
                if (devices.advertisData) {  
                    devices.advertisData = app.globalData.buf2hex(devices.advertisData);  
                } else {  
                    devices.advertisData = '';  
                }  

                for (var i = 0; i < that.devicesList.length; i++) {  
                    if (devices.deviceId == that.devicesList[i].deviceId) {  
                        isnotexist = false;  
                    }  
                }  

                if (isnotexist) {  
                    that.devicesList.push(devices);  
                    that.$forceUpdate()  
                }  
            } else if (devices.devices) {  
                if (devices.devices[0].advertisData) {  
                    devices.devices[0].advertisData = app.globalData.buf2hex(devices.devices[0]  
                        .advertisData);  
                } else {  
                    devices.devices[0].advertisData = '';  
                }  

                console.log(devices.devices[0]);  

                for (var i = 0; i < that.devicesList.length; i++) {  
                    if (devices.devices[0].deviceId == that.devicesList[i].deviceId) {  
                        isnotexist = false;  
                    }  
                }  

                if (isnotexist) {  
                    that.devicesList.push(devices.devices[0]);  
                    that.$forceUpdate()  
                }  
            } else if (devices[0]) {  
                if (devices[0].advertisData) {  
                    devices[0].advertisData = app.globalData.buf2hex(devices[0].advertisData);  
                } else {  
                    devices[0].advertisData = '';  
                }  

                console.log(devices[0]);  

                for (var i = 0; i < devices_list.length; i++) {  
                    if (devices[0].deviceId == that.devicesList[i].deviceId) {  
                        isnotexist = false;  
                    }  
                }  

                if (isnotexist) {  
                    that.devicesList.push(devices[0]);  
                    that.$forceUpdate()  
                }  
            }  

            that.devicesList = that.devicesList  
            that.$forceUpdate()  
        });  
    },  
    onShow() {  
        this.Search()  
    },  
        methods: {  
        Search() {  
            var that = this;  
            if (!that.searching) {  
                // uni.closeBluetoothAdapter({  
                    // complete(res) {  
                        // console.log(res);  
                        uni.openBluetoothAdapter({  
                            success(res) {  
                                console.log(res);  
                                uni.getBluetoothAdapterState({  
                                    success(res) {  
                                        console.log(res);  
                                    }  
                                });  
                                uni.startBluetoothDevicesDiscovery({  
                                    allowDuplicatesKey: false,  
                                    success(res) {  
                                        console.log(res);  
                                        that.searching = true,  
                                            that.devicesList = []  

                                    }  
                                });  
                            },  
                            fail(res) {  
                                console.log(res);  
                                uni.showModal({  
                                    title: '提示',  
                                    content: '请检查手机蓝牙是否打开',  
                                    showCancel: false,  
                                    success(res) {  
                                        that.searching = false  
                                    }  
                                });  
                            }  
                        });  
                    // }  
                // });  
            } else {  
                uni.stopBluetoothDevicesDiscovery({  
                    success(res) {  
                        console.log(res);  
                        that.searching = false  

                    }  
                });  
            }  
        }  
       }

  • 写回答

2条回答 默认 最新

  • 普通网友 2021-09-22 22:27
    关注

    你需要设置权限,没有权限是不可以的;

    所以运行不成功。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 已采纳回答 9月23日
  • 修改了问题 9月23日
  • 创建了问题 9月22日

悬赏问题

  • ¥50 有偿求qftp工具。能连接,下载文件,发送代码,windows环境,最好qt6 要qt creator写的
  • ¥70 刚刚看到一个人的网站居然是通过cname访问的
  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
  • ¥15 关于#极限编程#的问题,请各位专家解答!