Für eine Demo hier klicken

AvNav-Android

AvNav Android

Version 2017xxxx.

Nachdem die Navigations-App für die Nutzung mit dem Raspberry Pi  bereits einige Jahre erfolgreich im Einsatz ist, gibt es jetzt auch eine Version, die direkt (ohne einen Raspberry) auf Android läuft.

Zum Download. Oder im AppStore.

Sie verpackt im Wesentlichen die Web-App (siehe Beschreibung) in eine Android Applikation - siehe dort auch zum Erzeugen/Konvertieren der Karten.

Es kann das interne GPS des Gerätes genutzt werden. Alternativ können NMEA Daten über TCP/IP oder bluetooth empfangen werden (RMC für die Positionsdaten und AIS Daten). Die Quelle dafür kann z.B. ein Raspberry mit meiner Software sein - aber auch ein beliebiger anderer Sender, der die NMEA Daten per WLAN bereitstellt. Auch eine einfache GPS bluetooth "Maus" ist geeignet.

Damit kann die Software auch auf Tablets ohne eingebautes GPS laufen.

Die Karten werden im gleichen gemf Format erwartet. Sie können in 2 Verzeichnissen liegen:

  • im charts Verzeichnis unterhalb des Arbeitsverzeichnisses (kann beim Start gewählt werden). Dieses muß beschreibbar sein und wird daher bei Android 4.4 und höher auf dem internen Speicher liegen müssen
  • in einem beliebigen anderen Verzeichnis (vorzugsweise auf der SD Karte) - "additional charts dir" in den Einstellungen

Die Karten müssen auf das Gerät in eines der Verzeichnisse kopiert werden . Zusätzlich sind einige Demo-Karten vorhanden, die allerdings eine Online-Verbindung erfordern.

Wenn das gewählte Arbeitsverzeichnis  (Standard: interne-sd-Karte/avnav) noch nicht da ist, wird es beim ersten Start angelegt.

Die Track-Daten und logs werden in das Verzeichnis tracks unterhalb des Arbeitsverzeichnisses geschrieben.

Im Unterverzeichnis routes werden die Routen im gpx Format gespeichert. Routen und Tracks können aus der App über die Download Funktion an andere Apps weitergegeben werden (siehe Beschreibung der App). Um sie in andere Verzeichnisse zu speichern oder Routen aus anderen Verzeichnissen zu laden (upload Funktion) sollte sinnvollerweise ein Dateimanager installiert sein - z.B. ES Datei Manager.

Nach dem erstmaligen Start der App befindet man sich auf einer Einführungsseite:


Nach dem Klick kommt man auf die Einstellungsseite:

Hier können z.B. die Verzeichnisse  für Karten und Tracks gewählt werden, sowie die Quelle für die Positionsdaten.
Eine Liste der Settings findet sich hier.

Die Settings Seite kann über den OK button (oben rechts) oder über den Zurück-Button verlassen werden. Im Normalmodus erreicht man damit die Hauptseite der App.





Im Bild ist die IP Verbindung (eingestellt in Settings) erfolgreich aufgebaut  und es wirden eine gültige Position (oberer grüner Punkt) und gültige AIS Daten (unterer grüner Punkt) empfangen.
Um zu den Android Einstellungen zu gelangen, zunächst die Einstellungsseite in der App aufrufen, dort dann auf den Android Button klicken.
Bei weitteren Starts erreicht man sofort die Hauptseite der App.

Bluetooth


Zum Verbinden mit einem Bluetooth GPS, dieses zunächst über die Bluetooth Einstellungen (ausserhalb der Applikation) "pairen".
In der App dann in den Einstellungen Bluetooth Device auswählen, es erscheint ein Auswahldialog für verbundene Bluetooth Geräte:

Leider ist in älteren Android Versionen (< 4.4) Bluetooth manchmal ziemlich fehlerbehaftet. Wenn sich partout keine Verbindung ergeben will (Anzeigen bleiben auf gelb, status searching Sat 0/0) hilft oft ein Neustart des Tablets.
Auf Nexus Geräten scheint das besser zu funktionieren als auf einigen anderen.

Zum Verlassen der App auf der Haupseite den Zurück-Button nutzen. Solange die App läuft ist auch die Track-Aufzeichnung aktiv (auch wenn sie nicht sichtbar ist).

Modus

Ab Android 4.4 (Kitkat) läuft die App problemlos ohne weitere Installationen. In Versionen ab 4.0 (in älteren läuft sie nicht) ist sie im Normalmodus meist kaum bedienbar. Das liegt an dem recht fehlerhaften Browser unter Android.
Dafür gibt es zwei Lösungsmöglichkeiten:

Die "Crosswalk" runtime installieren.

Das ist eine embedded Chrome runtime (d.h. ein Stückchen Chrome läuft in der App) - damit wird der Stand für den embedded Browser auf Android 4.4 angehoben. Die runtime muss allerdings in der Version genau passen (die AvNavApp prüft das und zeigt das auf der Info-Seite (i) an).
Über die Info Seite ((i) unter Einstellungen) kann die Runtime installiert werden.
Diese kann man entweder von der Download-Seite oder aus dem AppStore herunterladen. In jedem Falle auf die Versionsnummer und die Architektur achten (dürfte meist ARM sein).
Wenn die App das erste mal gestartet wird, prüft sie, ob eine solche runtime installiert ist und bietet sonst an, das zu tun.


Hier gibt es 2 Möglichkeiten:

GooglePlay - das installiert die neueste Version der runtime. Wenn man die App auch auf der neuesten Version hat, sollte das funktionieren.
Sonst die Möglichkeit ApkDownload auswählen (das geht zur passenden Version auf der download Seite) . Dann sollte im Normalfall ein Browser zum Download gestartet werden. Zum Installieren muss dann allerdings unter Sicherheit die "Installation aus unbekannten Quellen" erlaubt werden.

Wenn die Runtime erfolgreich installiert wurde, unter "ApplicationMode" den Mode "Crosswalk" auswählen. Das ist auf jeden Fall von der Performance die beste Variante. Wenn die Runtime App nicht installiert ist, ist der Button nicht zu sehen.

Chrome Browser installieren

 https://play.google.com/store/apps/details?id=com.android.chrome
Dann in den Einstellungen den Mode "External Browser" auswählen (siehe) unten - ist von der Bedienung beim Start etwas umständlicher.

Im Browser Mode startet die App einen kleinen Webserver (also spielt so ein wenig Raspberry...) auf einem einstellbaren Port (34567) und zeigt die folgende Seite an:


Durch einen Klick auf Start Browser wird eine Auswahl der installierten Browser angezeigt, hier Chrome auswählen.
Leider hat man dann im Browser immer die Adressleiste, die etwas Platz wegnimmt. Um das zu verhindern, kann man in Chrome im Einstellungsmenü "Zum Startbildschirm hinzufügen" einstellen, dann noch einen sinnvollen Namen vergeben .



Danach über den Home Button hier den Chrome Browser verlassen und auf dem Startbildschirm auf das neue Icon klicken.
Das sieht dann wieder gut aus:


Zum Beenden oben (roter Pfeil) über die Notifikation gehen (kleines Segelboot), darüber kommt man wieder in die App und kann sie über die Browser-Seite   verlassen.
Sonst laufen der GPS Empfang und das Trackschreiben im Hintergrund weiter.
Beim nächsten Start nur die App im Browser Mode starten, dann direkt über den Home Button zum Startbildschirm und den Browser über das abgelegte Icon dort starten.


Wenn die App läuft werden die Track-Daten alle 5 Minuten in eine Datei geschrieben.
Wichtiger Hinweis:
Wenn man im Browser-Mode mal direkt aus der App und mal vom Home Bildschirm startet, hat man jedesmal andere Einstellungen in der App.
Also bitte immer den gleichen Weg benutzen.

Einstellungen

Die folgenden Parameter können auf den Einstellungsseiten gesetzt werden

Main Settings

Name Bedeutung Default
Application Mode Arbeitsmodus, siehe Modus Normal
working directory das Arbeitsverzeichnis (mit den Unterverzeichnissen charts,tracks, routes) /storage/sdcard/avnav
additional charts directory ein zusätzliches Kartenverzeichnis (sinnvoll auf der externen SD Karte) /storage/sdcard/avnav/charts
show demo charts Anzeige der Demo Karten (erfordert Internet Verbindung) ein
WebServer External Access Im External Browser Mode können andere Geräte von aussen zugreifen. Im Browser erreicht man dazu von der Status Seite eine Anzeige von QR codes - wenn man diese mit dem anderen Gerät ausliest (typisch der 2. angezeigte) und sich im gleichen WLAN befindet, kann man mit dem 2. Gerät ebenfalls zugreifen. aus

NMEA

Name Bedeutung Default
NMEA Source Auswahl der Quelle für Positionsdaten (Off,Internal, IP, Bluetooth) Internal
AIS Source Auswahl der Quelle für AIS Daten (Off,IP,Bluetooth) Off
IP Address IP Adresse von der NMEA/AIS Daten empfangen werden sollen 192.168.10.20
IP Port Port für den IP Empfang 34567
filter own MMSI hier kann die eigene MMSI eingetragen werden, wenn der AIS Empfänger diese mit ausgibt, die Daten werden dann ignoriert
filter incoming NMEA hier kann eine Liste von Filtern angegeben werden, d.h. NMEA Datensätze, die empfangen werden sollen. Wenn die Liste leer ist, werden alle Datensätze empfangen. Beispiel: RMC - nur $xxRMC Datensätze werden empfangen
log NMEA Data schreibe empfangene NMEA Daten in eine log Datei (im tracks Verzeichnis)
log AIS Data schreibe empfangene AIS Daten in eine log Datein
filter NMEA logs ein Filter, welche NMEA Daten in das log geschrieben werden sollen

Expert Settings

Name Bedeutung Default
offset internal gps(s) Zeit offset für internes GPS in Sekunden 0
offset IP gps time(s) Zeit offset für IP GPS in Sekunden 0
offset bluetooth gps time(s) Zeit offset für bluetooth GPS in Sekunden 0
AIS info invalid after(s) Zeit, nach der ein AIS Ziel gelöscht wird in Sekunden 1200
min trackpoint distance(m) Schreibe einen trackpoint, wenn mindestens dieser Abstand zum letzten vorhanden ist 25
time between trackpoints(s) Schreibe einen neuen trackpoint frühestens n Sekunden nach dem letzten 10
write track file every (s) Schreibe das trackfile alle n Sekunden in das tracks Verzeichnis. Falls die app abstürzen sollte, sind so die Daten bis zu diesem Zeitpunkt gesichert. Die Trackdaten werden ausserdem beim Beenden geschrieben. 300
port for external browser mode Hier kann der durch den Webserver genuzte Port geändert werden. 34567