Bluetooth 링크를 구현하기 위한 WeChat 애플릿용 코드
이 글은 위챗 애플릿의 블루투스 링크에 대한 관련 정보를 주로 소개합니다. 이 글을 통해 블루투스 애플릿의 개발 방법을 익히는데 도움이 되었으면 좋겠습니다. 모든 사람.
WeChat 애플릿의 블루투스 링크
WeChat 애플릿 블루투스 연결 2.0 설명:
1 이 버전은 Android 및 IOS 시스템에서 다양한 블루투스 연결 방법을 구별합니다.
2. 더 많은 상황에서 호환되는 링크는 다음과 같습니다.
(1) 장치 Bluetooth가 켜져 있지 않으면 Bluetooth가 켜지면 연결이 자동으로 시작됩니다.
(2) Bluetooth 초기화에 실패한 후 3000ms마다 Bluetooth 어댑터를 자동으로 다시 초기화합니다.
(3) Android 측에서 블루투스 어댑터를 열 때 블루투스 어댑터 검색이 실패하고 3000ms마다 자동으로 다시 시작됩니다.
(4) IOS 측은 연결된 블루투스 장치를 비어 있는 것으로 획득하고 3000ms마다 자동으로 다시 획득합니다.
(5) Android Bluetooth 연결이 시작된 후 검색이 중단됩니다. 연결에 실패하면 다시 검색하세요.
(6) IOS 측에서 장치 연결을 시작한 후 연결된 장치 획득을 중지합니다. 연결에 실패하면 자동으로 획득을 다시 시작합니다.
(7) 성공적으로 연결되면 시스템 블루투스를 끄고 블루투스 어댑터를 재설정하세요.
(8) 연결이 성공한 후 시스템 블루투스를 껐다가 다시 켜면 자동으로 연결이 다시 시작됩니다.
(9) 성공적으로 연결되면 대상 Bluetooth 장치를 끄고 자동으로 스캔(획득)을 다시 시작합니다.
(10) 연결에 성공한 후 애플릿을 최소화하고(연결이 중단되지 않음) 애플릿을 열면 연결되었다는 메시지가 표시됩니다.
(11) 연결이 성공한 후 애플릿 프로세스를 종료하고 연결을 닫은 후 자동으로 스캔(획득)을 다시 시작합니다.
3. 생각나면 업데이트하겠습니다....
4. 흐름도 혹시 시간되시면 내일이나 모레나...
App.js에서 연결이 이루어졌습니다.
App.js의 onLaunch 트리거는 init() 메서드를 호출하는 것입니다.
초기 코드:
init: function (n) { this.list = []; this.serviceId = "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"; this.serviceId_2 = "00001803-0000-1000-8000-00805F9B34FB"; this.serviceId_3 = "00001814-0000-1000-8000-00805F9B34FB"; this.serviceId_4 = "00001802-0000-1000-8000-00805F9B34FB"; this.serviceId_5 = "00001804-0000-1000-8000-00805F9B34FB"; this.serviceId_6 = "00001535-1212-EFDE-1523-785FEABCD123"; this.characterId_write = "6E400042-B5A3-F393-E0A9-E50E24DCCA9E"; this.characterId_read = "6E400012-B5A3-F393-E0A9-E50E24DCCA9E"; this.connectDeviceIndex = 0; this.isGettingConnected = false; this.isDiscovering = false; this.isConnecting = false; this.connectedDevice = {}; console.log('init state', this.connectedDevice.state); if (!this.connectedDevice.state || n == 200) { this.connectedDevice.state = false; this.connectedDevice.deviceId = ''; this.adapterHasInit = false } this.startConnect(); }
설명:
1.serviceId_2~6은 연결하려는 Bluetooth 장치의 serviceId입니다.
2.characterId_write는 데이터를 쓰기 위해 연결하려는 내가 알고 있는 블루투스 장치의 특성 값입니다.
3.characterId_read는 데이터를 읽기 위해 연결하려는 내가 알고 있는 블루투스 장치의 특성 값입니다.
(위 3개는 비교를 위한 것이며, 획득한 sericeid와 Characterid를 기준으로 실제 동작을 합니다.)
4.connectedDevice는 연결된 장치 정보 개체입니다.
init가 완료된 후 연결 startConnect() 호출을 시작합니다.
startConnect 코드:
startConnect: function () { var that = this; if (that.connectedDevice.state) return; that.connectedDevice.deviceId = ""; that.connectedDevice.state = false; // 如果适配器已经初始化不在调用初始化(重复初始化会报错) if (this.adapterHasInit == undefined || this.adapterHasInit) return; wx.showLoading({ title: '初始化蓝牙', duration: 2000 }); // 开启蓝牙适配器状态监听 this.listenAdapterStateChange(); // 初始化蓝牙适配器状态(必须步骤,否则无法进行后续的任何操作) wx.openBluetoothAdapter({ success: function (res) { console.log("初始化蓝牙适配器成功"); that.getBluetoothAdapterState(); that.adapterHasInit = true; }, fail: function (err) { console.log(err); wx.showLoading({ title: '请开蓝牙', icon: 'loading', duration: 2000 }) } }); }
참고: 이 단락에 설명이 있으므로 더 이상 말하지 않겠습니다. 비교적 간단합니다.
블루투스 어댑터 상태를 성공적으로 초기화한 후 getBluetoothAdapterState() 메서드를 호출하세요.
getBluetoothAdapterState 코드:
getBluetoothAdapterState: function () { var that = this; wx.getBluetoothAdapterState({ success: function (res) { console.log(res); var available = res.available; that.isDiscovering = res.discovering; if (!available) { wx.showLoading({ title: '请开蓝牙', icon: 'loading', duration: 2000 }) } else { if (!that.connectedDevice['state']) { that.judegIfDiscovering(res.discovering); } } }, fail: function (err) { console.log(err); } }) }
설명: 이 메서드는 현재 Bluetooth 상태를 가져오는 데 사용됩니다.
Bluetooth를 사용할 수 있는 것으로 감지되면 judegIfDiscovering 메서드가 호출됩니다.
judegIfDiscovering code :
judegIfDiscovering: function (discovering) { var that = this; if (this.isConnectinng) return; wx.getConnectedBluetoothDevices({ services: [that.serviceId], success: function (res) { console.log("获取处于连接状态的设备", res); var devices = res['devices']; if (devices[0]) { if (that.isAndroidPlatform) { wx.showToast({ title: '蓝牙连接成功', icon: 'success', duration: 2000 }); } else { that.getConnectedBluetoothDevices(256); } } else { if (discovering) { wx.showLoading({ title: '蓝牙搜索中' }) } else { if (that.isAndroidPlatform) { that.startBluetoothDevicesDiscovery(); } else { that.getConnectedBluetoothDevices(267); } } } }, fail: function (err) { console.log('getConnectedBluetoothDevices err 264', err); if (that.isAndroidPlatform) { that.startBluetoothDevicesDiscovery(); } else { that.getConnectedBluetoothDevices(277); } } }); }
설명:
1 이 방법은 스캔이 진행 중인지 확인하는 데 사용됩니다.
2.isAndroidPlatform은 애플릿의 getSystemInfo를 통해 획득되어 Android 기기인지 IOS 기기인지 확인합니다.
Android 장치인 경우 startBluetoothDevicesDiscovery()를 호출하여 검색을 시작하고, IOS 장치인 경우 getConnectedBluetoothDevices()를 호출하여 페어링된 Bluetooth 장치 획득을 시작합니다.
startBluetoothDevicesDiscovery 코드:
startBluetoothDevicesDiscovery: function () { var that = this; if (!this.isAndroidPlatform) return; if (!this.connectedDevice['state']) { wx.getBluetoothAdapterState({ success: function (res) { console.log(res); var available = res.available; that.isDiscovering = res.discovering; if (!available) { wx.showLoading({ title: '请开蓝牙', icon: 'loading', duration: 2000 }) } else { if (res.discovering) { wx.showLoading({ title: '蓝牙搜索中' }) } else { wx.startBluetoothDevicesDiscovery({ services: [], allowDuplicatesKey: true, success: function (res) { that.onBluetoothDeviceFound(); wx.showLoading({ title: '蓝牙搜索中' }) }, fail: function (err) { if (err.isDiscovering) { wx.showLoading({ title: '蓝牙搜索中' }) } else { that.startDiscoveryTimer = setTimeout(function () { if (!that.connectedDevice.state) { that.startBluetoothDevicesDiscovery(); } }, 5000) } } }); } } }, fail: function (err) { console.log(err); } }) }
지침:
1 Android 기기에서만 근처 블루투스 기기 검색을 활성화합니다.
2. 성공적인 콜백에서 새 Bluetooth 장치를 검색하기 위해 BluetoothDeviceFound()에서 이벤트 모니터링을 활성화합니다.
onBluetoothDeviceFound 코드:
[mw_shl_code=javascript,true]onBluetoothDeviceFound: function () { var that = this; wx.onBluetoothDeviceFound(function (res) { console.log('new device list has founded'); if (res.devices[0]) { var name = res.devices[0]['name']; if (name.indexOf('FeiZhi') != -1) { var deviceId = res.devices[0]['deviceId']; console.log(deviceId); that.deviceId = deviceId; if (!that.isConnecting) { that.startConnectDevices(); } } } }) }
설명:
1 검색된 Bluetooth 장치는 이름 속성을 기준으로 여기에서 필터링됩니다.
2. 연결해야 하는 장치의 name 속성이 포함된 장치를 필터링하고 deviceId를 얻으면 startConnectDevices() 메서드가 호출되어 연결이 시작됩니다.
startConnectDevices 코드:
startConnectDevices: function (ltype, array) { var that = this; clearTimeout(this.getConnectedTimer); clearTimeout(this.startDiscoveryTimer); this.getConnectedTimer = null; this.startDiscoveryTimer = null; this.isConnectinng = true; wx.showLoading({ title: '正在连接' }); that.stopBluetoothDevicesDiscovery(); wx.createBLEConnection({ deviceId: that.deviceId, success: function (res) { console.log('连接成功', res); wx.showLoading({ title: '正在连接' }); that.connectedDevice.state = true; that.connectedDevice.deviceId = that.deviceId; if (res.errCode == 0) { setTimeout(function () { that.getService(that.deviceId); }, 5000) } wx.onBLEConnectionStateChange(function (res) { console.log('连接变化', res); that.connectedDevice.state = res.connected; that.connectedDevice.deviceId = res.deviceId; if (!res.connected) { that.init('200'); } }); }, fail: function (err) { console.log('连接失败:', err); wx.hideLoading(); if (ltype == 'loop') { array = array.splice(0, 1); console.log(array); that.loopConnect(array); } else { if (that.isAndroidPlatform) { that.startBluetoothDevicesDiscovery(); } else { that.getConnectedBluetoothDevices(488); } } }, complete: function () { that.isConnectinng = false; } }); }
지침:
1. 연결을 연 후 검색(페어링) 방법을 종료합니다.
2. deviceId를 기반으로 저전력 블루투스 연결을 만듭니다. 연결이 성공하면 후속 읽기 및 쓰기 작업을 계속합니다.
3. 연결에 실패하면 장치 시스템에 따라 각각 startBluetoothDevicesDiscovery() 또는 getConnectedBluetoothDevices()를 호출하세요.
getConnectedBluetoothDevices 코드:
getConnectedBluetoothDevices: function (n) { var that = this; that.isGettingConnected = true; wx.showLoading({ title: '蓝牙搜索中' }); wx.getConnectedBluetoothDevices({ services: [that.serviceId], success: function (res) { console.log("获取处于连接状态的设备", res); var devices = res['devices'], flag = false, index = 0, conDevList = []; devices.forEach(function (value, index, array) { if (value['name'].indexOf('FeiZhi') != -1) { // 如果存在包含FeiZhi字段的设备 flag = true; index += 1; conDevList.push(value['deviceId']); that.deviceId = value['deviceId']; } }); if (flag) { that.connectDeviceIndex = 0; that.loopConnect(conDevList); } else { that.failToGetConnected(); } }, fail: function (err) { that.failToGetConnected(); }, complete: function () { that.isGettingConnected = false; } }); }
참고: Bluetooth 페어링 Bluetooth 장치 획득에 실패하거나 획득한 목록은 다음과 같습니다. 에어컨의 경우 failureToGetConnected();
failToGetConnected 코드:
failToGetConnected: function () { var that = this; if (!that.getConnectedTimer) { clearTimeout(that.getConnectedTimer); that.getConnectedTimer = null; } that.getConnectedTimer = setTimeout(function () { wx.getBluetoothAdapterState({ success: function (res) { console.log(res); var available = res.available; if (!available) { wx.showLoading({ title: '请开蓝牙', icon: 'loading', duration: 2000 }) } else { if (!that.connectedDevice['state']) { that.getConnectedBluetoothDevices(); } } }, fail: function (err) { console.log(err); } }) }, 5000); }
설명:
1 메서드가 성공적으로 호출된 후 반환되는 장치는 시스템에 의해 페어링된 여러 Bluetooth 장치가 포함된 배열입니다.
2. 장치 목록을 얻으면 loopConnect() 메서드를 호출하여 Bluetooth 장치 호출을 재귀적으로 시작합니다.
loopConnect 코드:
loopConnect: function (array) { var that = this; var listLen = array.length; if (array[0]) { that.deviceId = array[0]; if (!that.isConnecting) { that.startConnectDevices('loop', array); } } else { console.log('已配对的设备小程序蓝牙连接失败'); if (!that.isAndroidPlatform) { that.getConnectedBluetoothDevices(431); } } }
설명: 연결 생성 메서드가 실패한 후 looConnect는 배열의 첫 번째 값을 삭제한 다음 배열에 있는 모든 장치가 연결될 때까지 메서드를 계속 호출합니다.
거의 놓칠 뻔했습니다. app.js의 onShow에서 init() 메서드를 호출하세요.
특별 지침:
1. 현재 버전에서는 Android와 IOS에서 블루투스 연결을 위해 다른 방법을 권장합니다. Android 장치는 애플릿의 Bluetooth 연결을 직접 사용하여 시스템 페어링을 취소합니다. IOS 장치는 시스템 페어링 및 미니 프로그램 열기 후 몇 초 내에 성공적으로 연결할 수 있습니다.
2. 이 버전의 연결은 여전히 개선되어야 합니다. 연결은 자동으로 종료되지 않으며(필요한 경우 직접 추가할 수 있음) 성공할 때까지 무한히 검색하고 다시 연결합니다.
3. 연결 성공 후 작업은 데이터 쓰기와 알림 켜기를 동시에 수행해야 하는 경우 먼저 쓰고 알림을 켜는 것이 좋습니다. (이유는 알 수 없습니다. 그렇지 않으면 10008 오류가 발생합니다.)
관련 권장 사항:
WeChat 애플릿이 Bluetooth를 구현하는 방법에 대한 공유 예
Linux에 드라이버를 설치하고 Blueman을 사용하여 Bluetooth 헤드셋을 연결하는 방법에 대한 자세한 소개(그림 및 텍스트)
위 내용은 Bluetooth 링크를 구현하기 위한 WeChat 애플릿용 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











마그넷 링크는 리소스를 다운로드하기 위한 링크 방식으로, 기존 다운로드 방식보다 더 편리하고 효율적입니다. 마그넷 링크를 사용하면 중간 서버에 의존하지 않고 P2P 방식으로 리소스를 다운로드할 수 있습니다. 이번 글에서는 마그넷 링크의 사용법과 주의할 점을 소개하겠습니다. 1. 마그넷 링크란 무엇인가요? 마그넷 링크는 P2P(Peer-to-Peer) 프로토콜을 기반으로 한 다운로드 방식입니다. 마그넷 링크를 통해 사용자는 리소스 게시자에 직접 연결하여 리소스 공유 및 다운로드를 완료할 수 있습니다. 전통적인 다운로드 방법과 비교하여 자기

최근 많은 사용자들이 편집자에게 115://로 시작하는 링크를 다운로드하는 방법을 문의해 왔습니다. 115://로 시작하는 링크를 다운로드하려면 115 브라우저를 사용해야 합니다. 115 브라우저를 다운로드한 후 아래 편집기에서 편집한 다운로드 튜토리얼을 살펴보겠습니다. 115://로 시작하는 링크를 다운로드하는 방법을 소개합니다. 1. 115.com에 로그인하고 115 브라우저를 다운로드하여 설치합니다. 2. 115 브라우저 주소 표시줄에 chrome://extensions/를 입력하고 확장 센터에 들어가서 Tampermonkey를 검색한 후 해당 플러그인을 설치합니다. 3. 115 브라우저 주소창에 Grease Monkey 스크립트: https://greasyfork.org/en/를 입력하세요.

일부 사용자는 장치를 설치할 때 오류 코드 28을 표시하는 오류가 발생했습니다. 실제로 이는 주로 드라이버 때문입니다. win7 드라이버 코드 28의 문제만 해결하면 됩니다. 수행해야 할 작업을 살펴보겠습니다. 그것. win7 드라이버 코드 28로 수행할 작업: 먼저 화면 왼쪽 하단에 있는 시작 메뉴를 클릭해야 합니다. 그런 다음 팝업 메뉴에서 "제어판" 옵션을 찾아 클릭하세요. 이 옵션은 일반적으로 메뉴 하단이나 그 근처에 있습니다. 클릭하면 시스템이 자동으로 제어판 인터페이스를 엽니다. 제어판에서는 다양한 시스템 설정 및 관리 작업을 수행할 수 있습니다. 이것이 향수 청소 수준의 첫 번째 단계입니다. 도움이 되기를 바랍니다. 그런 다음 계속해서 시스템에 들어가야 합니다.

WeChat 생태계의 일부로서 WeChat 비디오 계정은 점차 콘텐츠 제작자와 판매자를 위한 중요한 홍보 도구가 되었습니다. 이 플랫폼에서 비디오 계정에 대한 링크를 얻는 것은 콘텐츠를 공유하고 전파하는 데 중요합니다. 다음에서는 WeChat 동영상 계정 링크를 얻는 방법과 동영상 계정에 제품 링크를 추가하여 콘텐츠 전파 효과를 높이는 방법을 자세히 소개합니다. 1. WeChat 비디오 계정 링크를 얻는 방법은 무엇입니까? WeChat 비디오 계정에 비디오를 게시하면 시스템이 자동으로 비디오 링크를 생성합니다. 작성자는 공유 및 배포를 용이하게 하기 위해 게시 후 링크를 복사할 수 있습니다. WeChat 비디오 계정에 로그인한 후 비디오 계정의 홈페이지를 탐색할 수 있습니다. 홈 페이지에는 각 비디오에 해당 링크가 포함되어 있어 직접 복사하거나 공유할 수 있습니다. 3. 영상 계정 검색: 위챗 검색창에 영상 계정 이름을 입력하세요

블루 스크린 코드 0x0000001로 수행할 작업 블루 스크린 오류는 컴퓨터 시스템이나 하드웨어에 문제가 있을 때 나타나는 경고 메커니즘입니다. 코드 0x0000001은 일반적으로 하드웨어 또는 드라이버 오류를 나타냅니다. 사용자가 컴퓨터를 사용하는 동안 갑자기 블루 스크린 오류가 발생하면 당황하고 당황할 수 있습니다. 다행히도 대부분의 블루 스크린 오류는 몇 가지 간단한 단계를 통해 문제를 해결하고 처리할 수 있습니다. 이 기사에서는 독자들에게 블루 스크린 오류 코드 0x0000001을 해결하는 몇 가지 방법을 소개합니다. 먼저, 블루 스크린 오류가 발생하면 다시 시작해 보세요.

짧은 동영상 플랫폼의 인기로 인해 점점 더 많은 제작자가 동영상 계정을 사용하여 콘텐츠를 제작하고 홍보하기 시작했습니다. 비디오 계정은 개인의 재능을 보여줄 수 있을 뿐만 아니라 제품 링크를 통해 상업적인 수익화를 실현할 수도 있습니다. 단, 동영상 계정에 링크를 추가하려면 특정 조건을 충족해야 합니다. 1. 동영상 링크 요구사항은 무엇인가요? 비디오 계정 인증은 비디오 계정에 링크를 추가하기 위한 전제 조건입니다. 현재 Douyin, Kuaishou 등 주요 단편 동영상 플랫폼에서는 인증 서비스를 제공하고 있으며, 주로 개인 인증과 기관 인증의 두 가지 유형이 있습니다. 개인인증의 경우 실명정보를 제출해야 하며, 기관인증의 경우 관련 기업이나 단체로부터 인증자료를 제공받아야 합니다. 인증 완료 후, 사용자는 자신의 비디오 계정에 링크를 추가하여 계정의 신뢰성과 권한을 강화할 수 있습니다. 영상 링크 중 하나

win10 시스템은 매우 뛰어난 지능 시스템으로 사용자에게 최고의 사용자 경험을 제공할 수 있습니다. 정상적인 상황에서는 사용자의 win10 시스템 컴퓨터에 아무런 문제가 없습니다! 그러나 우수한 컴퓨터에서는 다양한 오류가 발생하는 것은 불가피합니다. 최근 친구들은 win10 시스템에서 블루 스크린이 자주 발생한다고 보고했습니다. 오늘 편집자는 Windows 10 컴퓨터에서 자주 블루 스크린을 발생시키는 다양한 코드에 대한 솔루션을 제공합니다. 매번 다른 코드로 자주 나타나는 컴퓨터 블루 스크린에 대한 해결 방법: 다양한 오류 코드의 원인 및 해결 방법 제안 1. 0×000000116 오류의 원인: 그래픽 카드 드라이버가 호환되지 않는 것이어야 합니다. 해결책: 원래 제조업체의 드라이버를 교체하는 것이 좋습니다. 2,

종료 코드 0xc000007b 컴퓨터를 사용하는 동안 때때로 다양한 문제와 오류 코드가 발생할 수 있습니다. 그 중 종료코드가 가장 충격적이며, 특히 종료코드 0xc000007b가 가장 충격적이다. 이 코드는 애플리케이션이 제대로 시작되지 않아 사용자에게 불편을 초래함을 나타냅니다. 먼저 종료코드 0xc000007b의 의미를 알아보겠습니다. 이 코드는 32비트 응용 프로그램이 64비트 운영 체제에서 실행을 시도할 때 일반적으로 발생하는 Windows 운영 체제 오류 코드입니다. 그래야 한다는 뜻이다
