Создание и поиск привязок с использованием простого уточнения расположения на Java

Пространственные привязки Azure могут связывать данные датчика размещения на устройстве с созданными вами привязками. С помощью этих данных также можно быстро определить, есть ли привязки рядом с устройством. Дополнительные сведения см. в статье Coarse relocalization (Простое уточнение расположения).

Предварительные условия

Для работы с этим руководством вам потребуются:

Настройка поставщика датчика отпечатков пальцев

Начнем с создания и настройки поставщика датчика отпечатков пальцев. Поставщик датчика отпечатка пальца позволит получить информацию с платформозависимых датчиков на вашем устройстве и конвертировать ее измерения в общее представление для сеанса пространственной привязки облака.

Важно!

Обязательно просмотрите этот раздел и убедитесь, что датчики, которые вы включаете, доступны на вашей платформе.

// Create the sensor fingerprint provider
PlatformLocationProvider sensorProvider = new PlatformLocationProvider();

// Allow GPS
SensorCapabilities sensors = sensorProvider.getSensors();
sensors.setGeoLocationEnabled(true);

// Allow WiFi scanning
sensors.setWifiEnabled(true);

// Populate the set of known BLE beacons' UUIDs
String uuids[] = new String[2];
uuids[0] = "22e38f1a-c1b3-452b-b5ce-fdb0f39535c1";
uuids[1] = "a63819b9-8b7b-436d-88ec-ea5d8db2acb0";

// Allow the set of known BLE beacons
sensors.setBluetoothEnabled(true);
sensors.setKnownBeaconProximityUuids(uuids);

Настройка сеанса пространственной привязки облака

Далее следует настроить сеанс пространственной привязки облака. В первой строке мы устанавливаем поставщика датчика для сеанса. С этого момента все привязки, создаваемые во время сеанса, будут связаны с набором показаний датчика. Далее мы создадим критерии поиска близкого устройства и инициализируем его в соответствии с требованиями приложения. И наконец, сеансу предписывается использовать данные датчика при нахождении привязок, создав наблюдатель на основе наших критериев близкого устройства.

// Set the session's sensor fingerprint provider
cloudSpatialAnchorSession.setLocationProvider(sensorProvider);

// Configure the near-device criteria
NearDeviceCriteria nearDeviceCriteria = new NearDeviceCriteria();
nearDeviceCriteria.setDistanceInMeters(5.0f);
nearDeviceCriteria.setMaxResultCount(25);

// Set the session's locate criteria
AnchorLocateCriteria anchorLocateCriteria = new AnchorLocateCriteria();
anchorLocateCriteria.setNearDevice(nearDeviceCriteria);
cloudSpatialAnchorSession.createWatcher(anchorLocateCriteria);

Когда вы создадите наблюдатель, для каждой запрошенной привязки будет срабатывать событие AnchorLocated. Это событие срабатывает, если привязка обнаружена или если ее не удалось найти. В последнем случае причина будет указана в области состояния. Когда для наблюдателя будут обработаны, найдены или не найдены все привязки, сработает событие LocateAnchorsCompleted. Максимальное количество идентификаторов на наблюдателя — 35.

Дальнейшие действия

В этом руководстве вы узнаете о том, как создавать и находить привязки с использованием датчиков устройств. Чтобы узнать больше о простом уточнении расположения, перейдите к руководству ниже.