Seite 1 von 2

Keine Sender in TV-Browser, Sync mit Desktop geht auch nich

Verfasst: 16 Dez 2014, 14:13
von sboyson
Hallo zusammen,
wie der Titel schon sagt: ich bekomme keine Senderliste. Jedes Mal beim Start werde ich aufgefordert, die Sender auszuwählen, der Download dauert 1s und sagt dann "Datenupdate abgeschlossen", allerdings werden keine Sender angezeigt.

Die Synchronisierung mit der Desktop-Version funktioniert auch nicht, bei "Erinnerungen" kommt sogar, dass diese wohl nicht hochgeladen seien, obwohl ich das kurz vorher erst vom PC aus gemacht habe.

Bei "Debugging" habe ich "Logfiles schreiben" eingeschaltet und die App neu gestartet. Allerdings sind keine Logfiles zum Schreiben da und können daher nicht versendet werden.
Also irgendwas hakt hier gewaltig - ich weiß nur nicht, was und wo.

Was tun? Ich bitte um Hilfe! Danke!


Hardware: Settop-Box NEO Minix X8-H, Andoid 4.4.2
cat /proc/cpuinfo

Processor : ARMv7 Processor rev 1 (v7l)
processor : 0
BogoMIPS : 0.30

Features : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x4
CPU part : 0xc09
CPU revision : 1

Hardware : Amlogic Meson8 platform
Revision : 000b
Serial : 1900000000000000

uname -a
Linux localhost 3.10.33 #3 SMP PREEMPT Tue Jul 22 15:52:30 CST 2014 armv7l GNU/Linux

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 14:23
von sboyson
In "/data/data/org.tvbrowser.tvbrowser/shared_prefs/org.tvbrowser.tvbrowser_preferences.xml" finde ich:

Code: Alles auswählen

<boolean name="WRITE_LOG" value="true" />
Nur schreibt die App keine Logs. Wo müssten die denn eigentlich liegen?

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 14:29
von sboyson
Acho so, ich benutze kein WLAN, sondern die Ethernet-Schnittstelle des Geräts. Die WLAN-Funktionen sind demnach ausgeschaltet.
Ist das vielleicht der Grund? Dann wäre die App nix für mich, wenn sie zwingend WLAN voraussetzt.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 14:40
von ds10
Nein der App ist es egal, wie die Internetverbindung besteht, außer beim automatischen Datenupdate, wenn dort nur WLAN aktiviert ist.
Wenn der Download der Sender nur eine Sekunde dauert, dann kann TV-Browser keine Zugriff auf das Internet haben, sonst würde das länger dauern.
Die Log-Datei lässt sich direkt über das Menü von TV-Browser verschicken. Sie liegt im tvbrowserdata-Verzeichnis unter Download (entweder auf dem Gerät oder einem externen Speicher).

Es sollte auch eine Fehlermeldung ausgegeben werden, wenn TV-Browser die Daten nicht laden konnte. Wenn die Log-Datei nicht geschrieben werden kann, würde das bedeuten, dass auch die Sender nicht heruntergeladen werden können, da TV-Browser dann wohl einfach kein geeignetes Laufwerk mit Schreibrechten finden konnte.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 14:58
von sboyson
Naja, der Rest an Internet funktioniert ja prima, sowohl das XBMX als auch Google, PlayStore und all die anderen Sachen. Auch "TV Spielfilm" funktioniert und lädt Daten herunter ;-))

Das mit dem Verschicken der Logs hatte ich bereits gefunden (wie geschrieben), nur gibt es eben keine Logs.
Und "wo genau" ist das tvbrowserdata-Verzeichnis jetzt (kompletter oder wenigstens teilweiser Pfad, wie müsste die Logdatei heißen)?
Danke!

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:00
von sboyson
Thema Schreibrechte: das Gerät ist gerootetl allerdings braucht TV-Browser kein root oder fordert dies auch nicht an.
Beschreibbare Verzeichnisse gibt es genug - andere Apps finden diese ja auch (wie z.B. TV-Spielfilm, Titanium Backup, VLC oder Dreamdroid).
Mir scheint da was fehlerhaft.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:15
von ds10
Was andere Apps machen ist doch völlig belanglos, die arbeiten schließlich auch komplett anders.
Den genauen Pfad kann ich nicht nennen, denn den gibt Android zurück. Du wirst ja wohl wissen wo das Download-Verzeichnis auf deinem Gerät ist, wenn schon alles geroutet ist. Es ist entweder das Download-Verzeichnis auf einem externen Speicher oder das Download-Verzeichnis auf einem internen Speicher.

Suche doch einfach nach einem Verzeichnis tvbrowserdata, wenn du keins findest, ist das der Beweis, dass TV-Browser das Verzeichnis nicht anlegen kann, denn das wird versucht, wenn das Verzeichnis nicht existiert.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:21
von sboyson
Wie ich schon schrieb, gibt es ein Verzeichnis

Code: Alles auswählen

/data/data/org.tvbrowser.tvbrowser
Da drin liegen:
/data/data/org.tvbrowser.tvbrowser
/data/data/org.tvbrowser.tvbrowser/lib
/data/data/org.tvbrowser.tvbrowser/cache
/data/data/org.tvbrowser.tvbrowser/cache/com.android.opengl.shaders_cache
/data/data/org.tvbrowser.tvbrowser/shared_prefs
/data/data/org.tvbrowser.tvbrowser/shared_prefs/org.tvbrowser.tvbrowser_preferences.xml
/data/data/org.tvbrowser.tvbrowser/shared_prefs/transportation.xml
/data/data/org.tvbrowser.tvbrowser/databases
/data/data/org.tvbrowser.tvbrowser/databases/tvbrowser.db
/data/data/org.tvbrowser.tvbrowser/databases/tvbrowser.db-journal

Dann gibt es noch:
/data/app-lib/org.tvbrowser.tvbrowser-2
/data/app/org.tvbrowser.tvbrowser-2.apk

Und das wars dann.
Freundliche Frage: Wenn andere Apps auf diesem Gerät funktionieren und TV-Browser nicht, liegt es dann sicher am Gerät?

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:28
von sboyson
root@NEO-X8:/ # find / -iname download 2>/dev/null
/mnt/shell/emulated/0/Android/data/de.tvspielfilm/files/Download
/mnt/shell/emulated/0/Download
/data/media/0/Android/data/de.tvspielfilm/files/Download
/data/media/0/Download

Das richtige Verzeichnis hier wäre:

Code: Alles auswählen

/data/media/0/Android/data
, das ist das gleiche Verzeichnis wie

Code: Alles auswählen

/mnt/shell/emulated/0/Android/data/
weil darin liegen die Downloads der anderen Programme (youtube, XBMC, Gallery, Google, AirDroid, DreamDroid, VPlayer, VLC, TV Spielfilm, ...)
Das scheint mir "non standard" zu sein - aber wie bestimmt TV-Browser den Pfad zum "Download"-Verzeichnis? Gibt es da eine API-Funktion oder wird das durch die App selbst festgelegt?

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:36
von ds10
Das genannte Verzeichnis ist das exklusiv zur TV-Browser-App gehörende Datenverzeichnis und das ist nicht das Verzeichnis, was für die Zwischenspeicherung der TV-Daten verwendet wird, einfach weil dies nicht ausreichen könnte um die Daten zwischenzuspeichern, denn viele Geräte haben nur wenig Platz auf dem internen Speicher.

Deshalb fragt TV-Browser beim Android-System nach dem Download-Verzeichnis und zwar folgendermaßen

Code: Alles auswählen

File parent = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
      
      if(!parent.isDirectory()) {
        parent = getDir(Environment.DIRECTORY_DOWNLOADS, Context.MODE_PRIVATE);
      }
      
      final File path = new File(parent,"tvbrowserdata");
      File nomedia = new File(path,".nomedia");
      
      if(!path.isDirectory()) {
        path.mkdirs();
      }
Wenn das Gerät nun daraufhin kein brauchbares Verzeichnis zurückliefert, dann liegt es am Gerät, was sonst, denn ich kann als Entwickler erwarten, dass diese Anfragen ein brauchbares Ergebnis liefern, was z.B. auch sämtliche Emulatoren immer korrekt machen.

Dass andere Apps funktionieren heißt nur, dass sie diese Funktion des Android-Systems nicht benutzen und die Daten entweder im exklusiven Speicher der App ablegen oder diese gleich im RAM verarbeiten, was aber aus genannten Gründen bei TV-Browser nicht möglich ist. Die Daten sind die gleichen, die 2003 für die Desktop-Version entwickelt wurden, daher sind sie nicht auf Android optimiert.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 15:55
von sboyson
Mir ist schon klar, dass man vor 11 Jahren nicht wissen konnte, was heute so an Android-Hardware verfügbar ist ;-)

Ist "DIRECTORY_DOWNLOADS" eine Umgebungsvariable? Wenn ja, könnte ich versuchen, die irgendwo (vor Start von TV-Browser) zu setzen.
Und: ist das "Originalcode"? Mir fehlt da eine Fehlerroutine, falls die Verzeichnisse aus irgend welchen Gründen nicht angelegt werden können - oder wenigstens eine Fehlermeldung?
Oder war das nur symbolisch und der reale Code sieht anders aus?

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 16:12
von ds10
Es ist eine Konstante, die Android vorgibt und der zitierte Quellcode ist der tatsächliche Code. Eine Fehlermeldung gibt es dort tatsächlich nicht, da es ja schon den Fallback auf den internen Speicher gibt und der sollte immer vorhanden sein.

Ich werde mal noch etwas weiter suchen, denn seit Android 4.4 gibt es Einschränkungen beim Zugriff auf den externen Speicher, in den Emulatoren hat es aber trotzdem problemlos funktioniert.

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 16:14
von sboyson
Vielen vielen Dank, mir scheint, der Code verhält sich unter 4.4 anders als früher ...

Ich nehme auch gern Code-Snippets zum Ausführen auf der Konsole!

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 17:13
von sboyson1
Irgendwie wurde ich als "Spammer" gesperrt - kann das jemand der Mods mal prüfen? Danke.

Habe das gefunden: www punkt codeproject punkt com slash Articles~816470~Handling-Input-and-Storage-on-Android
Etwa Mitte der Seite:
Before accessing the external storage, the app should always verify its availability by calling "Environment.getExternalStorageState()".

Re: Keine Sender in TV-Browser, Sync mit Desktop geht auch n

Verfasst: 16 Dez 2014, 17:25
von sboyson1
Steht auch hier: developer . android . com / guide / topics / data / data-storage.html

"Checking media availability
Before you do any work with the external storage, you should always call getExternalStorageState() to check whether the media is available."

Evtl. müsste man diesen Check einbauen und dann entspr. darauf reagieren, falls dieser API-Call fehl schlägt. Könnte mir vorstellen, dass mein NEO nicht das einzige Gerät ist, wo das nicht so hinhaut...