10 private NavigineSdk sdk;
11 private LocationManager locationManager;
12 private MeasurementManager measurementManager;
13 private MeasurementListener measurementListener;
17 setupMeasurementListener();
23 private void initializeSdk() {
27 sdk = NavigineSdk.getInstance();
32 sdk.setUserHash(
"USER-HASH-HERE");
37 sdk.setServer(
"https://custom.navigine.com");
42 locationManager = sdk.getLocationManager();
47 measurementManager = sdk.getMeasurementManager(locationManager);
50 if (locationManager !=
null && measurementManager !=
null) {
51 System.out.println(
"LocationManager and MeasurementManager successfully initialized");
53 }
catch (Exception e) {
54 System.err.println(
"Error initializing SDK: " + e.getMessage());
61 private void setupMeasurementListener() {
62 measurementListener =
new MeasurementListener() {
65 public void onSensorMeasurementDetected(Map<SensorType, SensorMeasurement> sensors) {
66 System.out.println(
"Sensor measurements detected");
73 public void onSignalMeasurementDetected(Map<String, SignalMeasurement> signals) {
74 System.out.println(
"Signal measurements detected");
85 if (measurementManager ==
null) {
86 System.err.println(
"MeasurementManager not initialized");
92 measurementManager.addMeasurementListener(measurementListener);
93 System.out.println(
"Added measurement listener");
97 demonstrateBeaconGenerators();
100 demonstrateEddystoneGenerators();
103 demonstrateWifiGenerators();
106 demonstrateWifiRttGenerators();
109 demonstrateLocationGenerators();
115 }
catch (InterruptedException e) {
116 Thread.currentThread().interrupt();
121 measurementManager.removeMeasurementListener(measurementListener);
122 System.out.println(
"Removed measurement listener");
130 private void demonstrateBeaconGenerators() {
133 String beaconId = measurementManager.addBeaconGenerator(
134 "12345678-1234-1234-1234-123456789012",
142 System.out.println(
"Added beacon generator with ID: " + beaconId);
147 measurementManager.removeBleGenerator(beaconId);
148 System.out.println(
"Removed BLE generator: " + beaconId);
153 measurementManager.removeBleGenerators();
154 System.out.println(
"Removed all BLE generators");
161 private void demonstrateEddystoneGenerators() {
164 String eddystoneId = measurementManager.addEddystoneGenerator(
165 "12345678901234567890",
172 System.out.println(
"Added Eddystone generator with ID: " + eddystoneId);
176 measurementManager.removeBleGenerator(eddystoneId);
177 System.out.println(
"Removed Eddystone generator: " + eddystoneId);
183 private void demonstrateWifiGenerators() {
186 String wifiId = measurementManager.addWifiGenerator(
192 System.out.println(
"Added Wi-Fi generator with ID: " + wifiId);
197 measurementManager.removeWifiGenerator(wifiId);
198 System.out.println(
"Removed Wi-Fi generator: " + wifiId);
203 measurementManager.removeWifiGenerators();
204 System.out.println(
"Removed all Wi-Fi generators");
211 private void demonstrateWifiRttGenerators() {
214 String wifiRttId = measurementManager.addWifiRttGenerator(
224 System.out.println(
"Added Wi-Fi RTT generator with ID: " + wifiRttId);
229 measurementManager.removeWifiRttGenerator(wifiRttId);
230 System.out.println(
"Removed Wi-Fi RTT generator: " + wifiRttId);
235 measurementManager.removeWifiRttGenerators();
236 System.out.println(
"Removed all Wi-Fi RTT generators");
243 private void demonstrateLocationGenerators() {
246 String locationId = measurementManager.addLocationGenerator(
255 System.out.println(
"Added location generator with ID: " + locationId);
260 measurementManager.removeLocationGenerator(locationId);
261 System.out.println(
"Removed location generator: " + locationId);
266 measurementManager.removeLocationGenerators();
267 System.out.println(
"Removed all location generators");
275 sensors.forEach((sensorType, measurement) -> {
278 SensorType type = measurement.getType();
279 System.out.println(
"Sensor type: " + type);
284 Vector3d values = measurement.getValues();
285 System.out.println(
"Sensor values - X: " + values.getX() +
", Y: " + values.getY() +
", Z: " + values.getZ());
290 long time = measurement.getTime();
291 System.out.println(
"Measurement time: " + time +
" ms");
295 demonstrateVector3d(values);
303 signals.forEach((signalId, measurement) -> {
306 SignalType type = measurement.getType();
307 System.out.println(
"Signal type: " + type);
312 String
id = measurement.getId();
313 System.out.println(
"Signal ID: " +
id);
318 double rssi = measurement.getRssi();
319 System.out.println(
"Signal RSSI: " + rssi +
" dBm");
324 double distance = measurement.getDistance();
325 System.out.println(
"Signal distance: " + distance +
" meters");
330 long time = measurement.getTime();
331 System.out.println(
"Signal measurement time: " + time +
" ms");
339 private void demonstrateVector3d(Vector3d vector) {
342 double x = vector.getX();
343 System.out.println(
"Vector X: " + x);
348 double y = vector.getY();
349 System.out.println(
"Vector Y: " + y);
354 double z = vector.getZ();
355 System.out.println(
"Vector Z: " + z);
363 System.out.println(
"=== MeasurementManager Example ===");
370 }
catch (InterruptedException e) {
371 Thread.currentThread().interrupt();
374 System.out.println(
"=== Example completed ===");
380 public static void main(String[] args) {