Połącz Aidlab Unity SDK 2.5.0 z projektem Unity 6 na Androidzie. Android korzysta teraz z tego samego Aidlab.AidlabSDK, sygnałów i API synchronizacji co pozostałe platformy Unity.
W tym poradniku połączysz telefon lub tablet z Androidem z Aidlabem za pomocą Unity. Na koniec sześcian w scenie będzie poruszał się zgodnie z sygnałem oddechowym odbieranym na żywo.
Zaktualizowano w lipcu 2026 r. dla Aidlab Unity SDK 2.5.0, Unity 6.5 i aktualnego modelu uprawnień Bluetooth w Androidzie.
Zakładamy, że znasz już podstawy edytora Unity. Jeśli dopiero zaczynasz, skorzystaj najpierw z kursu wprowadzającego Unity.
Przygotowanie projektu
1. Utwórz nowy projekt Unity:
2. Utwórz pustą scenę, dodaj ją do profilu kompilacji i wybierz Android jako platformę docelową:
3. Pobierz Aidlab Unity SDK 2.5.0, a następnie wybierz Assets → Import Package → Custom Package... i zaimportuj wszystkie pliki.
4. Utwórz obiekt Cube, dodaj do projektu pokazany poniżej skrypt AidlabRespiration i przypisz go do obiektu Main Camera. Scena powinna wyglądać tak:
5. W Project Settings → Player → Android → Other Settings ustaw Minimum API Level na Android 9 (API 28) lub nowszy:
6. Podłącz urządzenie z Androidem, wybierz Build and Run i udziel aplikacji uprawnień do Bluetooth, gdy poprosi o nie system. Na Androidzie 11 i starszych wersjach system prosi o dostęp do lokalizacji, ponieważ tego uprawnienia wymagało wyszukiwanie urządzeń BLE.
7. Sprawdź, czy Bluetooth jest włączony, uruchom Aidlaba i załóż go. Po uzyskaniu uprawnień AidlabSDK wyszukuje urządzenia i łączy się z tym o wskazanej nazwie.
Jedno API na wszystkich platformach Unity
Android korzysta z tego samego punktu wejścia Aidlab.AidlabSDK i delegatów sygnałów co iOS, macOS i Windows. Implementacja dla Androida samodzielnie obsługuje wymagane uprawnienia oraz komunikację z kodem Java/Kotlin:
using Aidlab;
using UnityEngine;
public sealed class AidlabRespiration : MonoBehaviour
{
private AidlabSDK sdk;
private float currentRespirationSample;
private void Start()
{
AidlabSDK.init("Aidlab");
sdk = FindAnyObjectByType<AidlabSDK>();
sdk.SetCollectSignals(
new[] { Signal.Respiration },
System.Array.Empty<Signal>()
);
AidlabSDK.aidlabDelegate.respiration.Subscribe(OnRespiration);
}
private void OnDestroy()
{
AidlabSDK.aidlabDelegate.respiration.Unsubscribe(OnRespiration);
}
private void OnRespiration()
{
currentRespirationSample = AidlabSDK.aidlabDelegate.respiration.value;
}
private void Update()
{
var cube = GameObject.Find("Cube");
if (cube == null)
return;
Vector3 position = cube.transform.position;
position.y = Mathf.Clamp(currentRespirationSample * 10, -4, 4);
cube.transform.position = position;
}
}
Android 12 i nowsze wersje wymagają uprawnień BLUETOOTH_SCAN oraz BLUETOOTH_CONNECT. Android 11 i starsze wersje korzystają z uprawnienia do dokładnej lokalizacji podczas wyszukiwania urządzeń BLE. SDK prosi o odpowiednie uprawnienie przed rozpoczęciem wyszukiwania. Aplikacja nie może samodzielnie włączyć Bluetooth bez udziału użytkownika, dlatego poproś go o włączenie go w ustawieniach lub oknie dialogowym systemu.
Te same delegaty udostępniają na wszystkich platformach docelowych Unity: EKG, temperaturę skóry, dane ruchowe, tętno, odstępy RR, aktywność, ciśnienie, EDA, GPS, postęp synchronizacji i zapisane próbki. W kodzie produkcyjnym przechowuj referencję do obiektu sceny, zamiast wywoływać GameObject.Find w każdej klatce. Dodaj też obsługę zdarzeń Connected, Disconnected i ErrorReceived.







