Так что я изо всех сил пытался реализовать сканер отпечатков пальцев Bluetooth, который я получил от Aliexpress. Я уже 2 дня смотрю, как это сделать, и я нахожусь на этапе, когда я могу подключиться и отправить материал. Но я понятия не имею, как это сделать без надлежащего UUID и сервиса. Вот периферийная информация
{
"characteristics":[
{
"properties":{
"Read":"Read"
},
"characteristic":"2a00",
"service":"1800"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a01",
"service":"1800"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a04",
"service":"1800"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a29",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a24",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a25",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a27",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a26",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a28",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a23",
"service":"180a"
},
{
"properties":{
"Read":"Read"
},
"characteristic":"2a2a",
"service":"180a"
},
{
"properties":{
"Write":"Write",
"Read":"Read"
},
"characteristic":"49535343-6daa-4d02-abf6-19569aca69fe",
"service":"49535343-fe7d-4ae5-8fa9-9fafd205e455"
},
{
"descriptors":[
{
"value":null,
"uuid":"2902"
}
],
"properties":{
"Notify":"Notify",
"Write":"Write"
},
"characteristic":"49535343-aca3-481c-91ec-d85e28a60318",
"service":"49535343-fe7d-4ae5-8fa9-9fafd205e455"
},
{
"descriptors":[
{
"value":null,
"uuid":"2902"
}
],
"properties":{
"Indicate":"Indicate",
"Notify":"Notify"
},
"characteristic":"fff1",
"service":"fff0"
},
{
"properties":{
"Write":"Write",
"WriteWithoutResponse":"WriteWithoutResponse"
},
"characteristic":"fff2",
"service":"fff0"
}
],
"services":[
{
"uuid":"1800"
},
{
"uuid":"180a"
},
{
"uuid":"49535343-fe7d-4ae5-8fa9-9fafd205e455"
},
{
"uuid":"fff0"
}
],
"advertising":{
"txPowerLevel":2,
"serviceData":{
},
"serviceUUIDs":[
"fff0"
],
"localName":"FGT19100003",
"isConnectable":true,
"manufacturerData":{
"bytes":[
2,
1,
2,
12,
9,
70,
71,
84,
49,
57,
49,
48,
48,
48,
48,
51,
3,
3,
240,
255,
2,
10,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"data":"AgECDAlGR1QxOTEwMDAwMwMD8P8CCgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"CDVType":"ArrayBuffer"
}
},
"rssi":-48,
"id":"88:1B:99:25:AD:54",
"name":"FGT19100003"
Но я вижу характеристику всего с 4 символами. Теперь, насколько мне известно, они имеют формат XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Я получил некоторый исходный код в JAVA, который я могу загрузить, если кто-то захочет взглянуть на него (он работает, я установил его, он может сканировать отпечаток пальца и возвращает мне его BitMatrix.) (Проект src java: https://filebin.net/7jeo1o0lkgd8x2oy)
Вот код для функции, которую я использую в RN.
test(peripheral: { connected: any; id: string; }) {
if (peripheral) {
if (peripheral.connected) {
BleManager.disconnect(peripheral.id);
} else {
BleManager.connect(peripheral.id).then(() => {
let peripherals = this.state.peripherals;
let p = peripherals.get(peripheral.id);
if (p) {
p.connected = true;
peripherals.set(peripheral.id, p);
this.setState({ peripherals });
}
console.log('Connected to ' + peripheral.id);
setTimeout(() => {
BleManager.retrieveServices(peripheral.id).then((peripheralInfo) => {
console.log(JSON.stringify(peripheralInfo))
var service = '49535343-6daa-4d02-abf6-19569aca69fe';
var crustCharacteristic = '49535343-fe7d-4ae5-8fa9-9fafd205e455';
setTimeout(() => {
BleManager.startNotification(peripheral.id, service, crustCharacteristic).then(() => {
console.log('Started notification on ' + peripheral.id);
setTimeout(() => {
BleManager.write(peripheral.id, service, crustCharacteristic, [0]).then(() => {
console.log('write succes');
});
}, 500);
}).catch((error) => {
console.log('Notification error', error);
});
}, 200);
});
}, 900);
}).catch((error) => {
console.log('Connection error', error);
});
}
}
}
У кого-нибудь есть опыт? У меня также есть таблица, в которой, как мне кажется, содержатся все возможные команды(https://i.imgur.com/0TP0etn.png).