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

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日

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!