Мое требование - создать приложение, которое может передавать данные / текст из Tizen Wearable в приложение iOS. Чтобы выполнить это требование, я создал коммуникационную архитектуру BLE, то есть центральную периферию. Итак, проблема здесь такова:
- iOS Central - периферийное устройство Tizen: в этом периферийном устройстве Tizen зарегистрируйте сервис для адаптера и объявите тот же сервис для сканирования. Я получил рекламируемую услугу на центральной станции, но зарегистрированная служба не была получена на центральной стороне, когда я сканировал услуги. Вот некоторый код:
var adapter2 = tizen.bluetooth.getDefaultAdapter();
var CHAT_SERVICE_UUID = "5BCE9431-6C75-32AB-AFE0-2EC108A30860";
function chatServiceSuccessCb(recordHandler)
{
console.log("Chat service registration succeeds!");
chatServiceHandler = recordHandler;
}
function publishChatService()
{
adapter2.registerRFCOMMServiceByUUID(CHAT_SERVICE_UUID, "Chat service", chatServiceSuccessCb,
function(e)
{
console.log("Could not register service record, Error: " + e.message);
});
}
publishChatService();
var adapter = tizen.bluetooth.getLEAdapter();
var advertiseData = new tizen.BluetoothLEAdvertiseData({
includeName: true,
uuids: [CHAT_SERVICE_UUID]
});
var connectable = true;
adapter.startAdvertise(advertiseData, 'ADVERTISE', function onstate(state) {
console.log('Advertising configured: ' + state);
}, function(error) {
console.log('startAdvertise() failed: ' + error.message);
}, 'LOW_LATENCY', connectable);
Периферия iOS - Tizen Central: На этот раз я создал периферию на iOS, создал тот же сервис, рекламировал сервис. Я получил рекламируемые данные на стороне Tizen. Я подключаюсь к удаленному устройству, прослушиватель соединения успешно вызван. Теперь, когда я пытаюсь подключиться к услуге, я получаю исключение, т.е. исключение, не связанное с устройством.
В коде remoteDevice.getService (remoteDevice.uuids [0]) создайте исключение, в то время как remoteDevice.addConnectStateChangeListener (onConnectionStateChange);эти слушатели никогда не звонят.
Вот некоторый код:
function connectFail(error) {
console.log('Failed to connect to device: ' + error.message);
}
function connectSuccess() {
console.log('Connected to device');
var serviceUUIDs = remoteDevice.uuids;
console.log('total number of services found here are: ' + serviceUUIDs.length);
service = remoteDevice.getService(remoteDevice.uuids[0]);
console.log('flag next step 1');
}
function onerror(e)
{
console.log("Error occurred: " + e.message);
}
function onDeviceFound(device)
{
console.log("Found new device: " + device.name);
var onConnectionStateChange =
{
onconnected: function(device)
{
heartrateVal.innerHTML = 'connected';
console.log("Device " + device.name + " connected");
},
ondisconnected: function(device)
{
console.log("Device " + device.name + " disconnected");
device.removeConnectStateChangeListener(listenerID);
}
};
if (device.name === "aBcD")
{
remoteDevice = device
console.log("Found required device: " + device.name);
listenerID = remoteDevice.addConnectStateChangeListener(onConnectionStateChange);
remoteDevice.connect(connectSuccess, connectFail);
adapter.stopScan();
}
}
var adapter = tizen.bluetooth.getLEAdapter();
var listenerID = null;
adapter.startScan(onDeviceFound, onerror);
Я протестировал свое приложение iOS с другим приложением для iOS, а также с Android-приложением, которое работает нормально. Но с тизен я сталкиваюсь с этими проблемами. Я не уверен, что есть какие-либо проблемы в Tizen SDK или Tizen BLE, которые работают не так, как iOS и Android.
Примечание. Весь вышеупомянутый код взят из примеров Tizen и спецификаций API. Вот несколько ссылок:
https://developer.tizen.org/dev-guide/2.3.1/org.tizen.sampledescriptions/html/mobile_w/bluetoothchat_mw.htm
https://developer.tizen.org/development/guides/web-application/connectivity-and-wireless/bluetooth
Заранее спасибо.