2016-04-07 5 views
0

У меня есть приложение Javafx, которое должно быть развернуто на Android. Мое приложение должно получить широту и долготу, но я не знаю, как их реализовать. Может ли кто-нибудь дать мне образец кода о том, как это сделать в JavaFX?Интеграция GPS в JavafxPorts

ОБНОВЛЕНО:

package com.gpstracker; 

import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.geometry.Insets; 
import javafx.geometry.Rectangle2D; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.TextField; 
import javafx.scene.layout.VBox; 
import javafx.stage.Screen; 
import javafx.stage.Stage; 

public class GPSTracker extends Application { 

    @Override 
    public void start(Stage stage) { 
     TextField t1 = new TextField(); 

     TextField t2 = new TextField(); 

     Button button = new Button("Show Location"); 
     button.setOnAction(new EventHandler<ActionEvent>(){ 
      @Override 
      public void handle(ActionEvent event) { 
       PositionService positionService = PlatformFactory.getPlatform().getPositionService(); 
       Position position = positionService.getPosition(); 
      } 
     }); 

     VBox root = new VBox(20); 
     root.setPadding(new Insets(20)); 
     root.getChildren().addAll(t1, t2, button); 

     Rectangle2D visualBounds = Screen.getPrimary().getVisualBounds(); 
     Scene scene = new Scene(root, visualBounds.getWidth(), visualBounds.getHeight()); 

     stage.setScene(scene); 
     stage.show(); 
    } 

} 

Gloun не могу показаться, чтобы найти PositionService класс вызова и положения.

ответ

3

С Gluon Mobile текущее положение устройства можно отследить с помощью PositionService. Пример фрагмента кода:

PositionService positionService = PlatformFactory.getPlatform().getPositionService(); 
Position position = positionService.getPosition(); 
System.out.println("Current GPS position: " + position.getLatitude() + "," + position.getLongitude()); 
+0

Сэр, спасибо за ответ, но Gluon не могу показаться, чтобы найти класс PositionService и установки, пожалуйста, смотрите обновленный вопрос выше. – Walker

+0

Привет, почему переменная позиция возвращает null? Я уже с высокой точностью включил свое местоположение. Любая идея сэр? – Walker

+1

При первом загрузке PositionService он попытается установить текущую позицию в последнюю известную позицию, используя следующий метод: http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation (java.lang.String). Это может вернуть значение «null». Вместо этого вы можете добавить ChangeListener в свойство position: 'positionService.positionProperty(). AddListener ((obs, oldPos, newPos) -> System.out.println (" Новая позиция GPS: "+ newPos.getLatitude() +", "+ newPos.getLongitude()));'. Этот слушатель будет вызываться каждый раз, когда позиция изменяется. –

1

Чтобы использовать PositionService, упомянутые Joeri, вы должны добавить зависимость к глюонной с открытым исходным кодом charm-down библиотеки. Вот пример конфигурации для вашего build.gradle:

dependencies { 
    compile 'com.gluonhq:charm-down-common:2.0.0'; 
    desktopRuntime 'com.gluonhq:charm-down-desktop:2.0.0'; 
    androidRuntime 'com.gluonhq:charm-down-android:2.0.0'; 
    iosRuntime 'com.gluonhq:charm-down-ios:2.0.0'; 
} 
+0

привет, где разместить этот код? Можете ли вы сказать, где разместить эти коды в build.gradle? – Walker

+0

ваше приложение javafxports должно иметь файл build.gradle в корневой папке. Этот файл может уже иметь раздел зависимости, просто добавьте эти 4 записи в него. Вы также должны прочитать документацию javafxports по адресу http://docs.gluonhq.com/javafxports/#_build_gradle –

 Смежные вопросы

  • Нет связанных вопросов^_^