Skip to first unread message

Robert Barion

unread,
Mar 18, 2019, 7:40:15 AM3/18/19
to mitappinv...@googlegroups.com

Hallo ihr lieben, ich brauch eure Hilfe,

In meiner App versuche ich eine pdf Datei die auf meinem Handy ist mit einem Button zu öffnen.

Nun zu meinem Problem, im

Leif-Modus Connect / AlCompanion

wird die pdf Datei aus meinem Handy über den Button geöffnet.

Wenn ich aber mit

Build / App (provide QR code for .apk)

die App auf meinem Handy übertrage habe ich das Problem.

Nach dem Drücken auf dem Button öffnet sich kurz der PDF-Reader und diese Fehlermeldung kommt.

 „ Kein Zugriff auf diese Datei möglich. Überprüfen Sie den Speicherort/das Netzwerk und versuchen Sie es erneut “


ich weiß nicht mehr weiter?

Ich habe ein Samsung S8+ und hier mein Code.


Für eure Hilfe Danke ich schon mal.

appPDF.jpg

TimAI2

unread,
Mar 18, 2019, 8:23:11 AM3/18/19
to MIT App Inventor Forum
The file path to the pdf is different with a compiled app (file:///android_asset/....).

An easy solution is to use Taifun's Tools extension
and the pathToAssets block

Taifun

unread,
Mar 18, 2019, 2:13:37 PM3/18/19
to MIT App Inventor Forum
the activiy starter opens another app and another app is not able to open a file stored in the assets of your app
Tim's suggestion therefore will not work... also the PathToAssets method is only relevant for the webviewer component...
what you can do is to first copy the file to the intrnal sdcard and read from there

Trying to push the limits of App Inventor! Snippets, Tutorials and Extensions from Pura Vida Apps by Taifun. 

TimAI2

unread,
Mar 18, 2019, 3:03:28 PM3/18/19
to MIT App Inventor Forum
Bah!  :)

Robert Barion

unread,
Mar 18, 2019, 3:14:28 PM3/18/19
to MIT App Inventor Forum

Ja das Stimmt Taifun,

es Funktioniert nur im Webviewer-Komponente.

Schade :-(

Danke an alle.

Taifun

unread,
Mar 18, 2019, 3:18:51 PM3/18/19
to MIT App Inventor Forum
it seems to be, you missed my answer... here is it again:
what you can do is to first copy the file to the intrnal sdcard and read from there

Taifun

Robert Barion

unread,
Mar 19, 2019, 11:18:38 AM3/19/19
to MIT App Inventor Forum

Hi Taifun,

das kann ich nicht machen.

Meine App ist im Google Play erhältlich und für jeden zugänglich.

 

Die pdf Datei muss schon in der App sein, es soll ein Handbuch werden.

Ich habe bis jetzt alles im ListPicker als Textdatei hinterlegt.

Robert

TimAI2

unread,
Mar 19, 2019, 11:25:19 AM3/19/19
to MIT App Inventor Forum
You could try Taifun's PDF extension which will load a pdf from assets (but this is still experimental)


Taifun

unread,
Mar 19, 2019, 12:57:34 PM3/19/19
to MIT App Inventor Forum
Die pdf Datei muss schon in der App sein, es soll ein Handbuch werden.

what exacxtly prevents you from copying the pdf from the assets to the internal storage and open it form there?
you can use the file extension to copy the file
alternatively use the pdf extension ad Tim already mentioned

Robert Barion

unread,
Mar 19, 2019, 1:48:36 PM3/19/19
to MIT App Inventor Forum

@Taifun,

habe ich schon gemacht?

Wie oben beschrieben bekomme ich eine Fehlermeldung.


 „ Kein Zugriff auf diese Datei möglich. Überprüfen Sie den Speicherort/das Netzwerk und versuchen Sie es erneut “


Meine Hilfe.pdf Datei befindet sich im Verzeichnis.

sdcard/AppInventor/assets/


Meine Einstellung:

DataUri: file:///mnt/sdcard/AppInventor/assets/Hilfe.pdf

Robert

Taifun

unread,
Mar 19, 2019, 2:00:26 PM3/19/19
to MIT App Inventor Forum
the directory /AppInventor/assets/ is valid only on your development device and is used by the companion app
to open a pdf file using the activity starter you have to copy the file from the assets to a directory of your choice and open it from there
you can use the file extension to copy the file https://puravidaapps.com/file.php
It would really help if you provided a screenshot of your relevant blocks, so we can see what you are trying to do, and where the problem may be.

Robert Barion

unread,
Mar 19, 2019, 2:43:23 PM3/19/19
to MIT App Inventor Forum

In meinem 1 Artikel habe ich einen Screenshot!!

Von meinen Einstellungen

robert

appPDF.jpg

Robert Barion

unread,
Mar 19, 2019, 3:07:12 PM3/19/19
to MIT App Inventor Forum

Ich habe es so gemacht.

Ich bekomme ein Runtime ERROR

Robert

appPDF2.jpg

Taifun

unread,
Mar 19, 2019, 3:09:52 PM3/19/19
to MIT App Inventor Forum
I will have to repeat what I already said several times

the directory /AppInventor/assets/ is valid only on your development device and is used by the companion app
to open a pdf file using the activity starter you have to copy the file from the assets to a directory of your choice and open it from there
you can use the file extension to copy the file https://puravidaapps.com/file.php

Taifun

Taifun

unread,
Mar 19, 2019, 3:11:57 PM3/19/19
to mitappinv...@googlegroups.com
read the documentation to find out, how to copy a file from the assets
also the target directory is invalid

Taifun

Robert Barion

unread,
Mar 19, 2019, 3:36:10 PM3/19/19
to MIT App Inventor Forum

@Taifun,

ich habe es so gemacht, ich weiss nicht weiter.

Hast Du ein Beispiel?

appPDF3.jpg

Taifun

unread,
Mar 19, 2019, 6:47:13 PM3/19/19
to MIT App Inventor Forum
let's take a look at the documentation together

Copy file.
Use this method to copy small files, for large files use the CopyAsync method instead. Prefix the filename with / (i.e. relative path) to copy a file on the SD card. For instance /myFile.txt will copy the file /mnt/sdcard/myFile.txt. To copy assets packaged with an application (also works for the Companion) start the fromFilename with // (two slashes). However you can't copy files to the assets. If a fileName starts with file:/// you can specify a complete path to the file.

Taifun

Robert Barion

unread,
Mar 20, 2019, 7:58:27 AM3/20/19
to mitappinv...@googlegroups.com

@Taifun,

mein Code sieht jetzt so aus.


Die Pdf Datei wird aus dem Path Assets in den Path Documents Kopiert,

das Funktioniert dank deiner Hilfe Super.


Aber ich bekomme immer noch den gleichen Fehler wie anfangs angezeigt.


 „ Kein Zugriff auf diese Datei möglich. Überprüfen Sie den Speicherort/das Netzwerk und versuchen Sie es erneut “


Die Daten werden aber nur im Webviewer-Komponente Kopiert.

appPDF4.jpg

BodyMindPower

unread,
Mar 20, 2019, 11:07:07 AM3/20/19
to MIT App Inventor Forum
try this:
Anke

Robert Barion

unread,
Mar 21, 2019, 5:45:13 AM3/21/19
to mitappinv...@googlegroups.com

Es funktioniert nicht,:-(

so sieht die Fehlermeldung aus, es hat sich nichts geändert.


Es funktioniert nur wen ich die Hilfe.pdf auf meiner HP lade und von dort draufzugreife.


Mein Samsung Handy und Tablet lässt es nicht zu, dass ich die pdf Datei lesen kann,

egal in welchem Verzeichnis die pdf  Datei ist.


Screenshot_20190320-124421.jpg
Message has been deleted
Message has been deleted
Message has been deleted

BodyMindPower

unread,
Mar 21, 2019, 8:54:56 AM3/21/19
to MIT App Inventor Forum
... bei mir läuft die App auf mehreren Geräten mit Android 7, 8 und 9 bestens ... pdf wird gespeichert / geöffnet / angezeigt

Anke

PS: welche Android-Versionen haben das Tablet / Handy?
blocks.JPG
Message has been deleted
Message has been deleted

Robert Barion

unread,
Mar 21, 2019, 9:30:15 AM3/21/19
to MIT App Inventor Forum
Das Handy hat Android Version 9 und das Tablet 8.1.0
Robert

BodyMindPower

unread,
Mar 21, 2019, 9:43:34 AM3/21/19
to MIT App Inventor Forum
... bei mir läuft die App auf 2 Samsung Handys mit Android 7 und 9 sowie auf einem Xiaomi mit Android 8.1 ohne Probleme

Robert Barion

unread,
Mar 21, 2019, 9:44:56 AM3/21/19
to MIT App Inventor Forum

Jetzt Funktioniert es,

Ich habe den

Screen1.AskForPermission „WRITE_EXTERNAL_STORAGE“

Code bei mir eingesetzt.


Jetzt hat mich die App beim Start gefragt, ob es auf es auf meine Dateien zugreifen darf.


Was bewirkt der Code?

Screen1.AskForPermission „WRITE_EXTERNAL_STORAGE“


Danke,

für deine Hilfe Anke.

Robert

BodyMindPower

unread,
Mar 21, 2019, 9:55:04 AM3/21/19
to MIT App Inventor Forum

Since you want to save to a non-app-specific directory and then read from it, read / write permissions (READ_ / WRITE_EXTERNAL_STORAGE) must exist. The WRITE permission is sufficient for this, which implicitly assigns READ permissions.

Anke

Da du in ein non-app-specific directory speichern und dann daraus lesen möchtest, müssen hierfür Schreibe-/Lese-Berechtigungen (READ_/WRITE_EXTERNAL_STORAGE permissions) vorhanden sein. Die WRITE permission reicht hierfür aus, das diese implizit auch Leserechte vergibt.

Robert Barion

unread,
Mar 21, 2019, 10:04:18 AM3/21/19
to MIT App Inventor Forum
Super,
Danke noch mal.
Robert

BodyMindPower

unread,
Mar 21, 2019, 10:42:27 AM3/21/19
to MIT App Inventor Forum
Another note: Normally, the runtime permissions are queried by the extension. In this case - as I know from Taifun - the TaifunFile extension has not yet been adapted to the new permission system of Google (targetSdkVersion = 26). This should follow soon, according to Taifun. This might also explain why your other apps did not experience any issues.

Anke
Reply all
Reply to author
Forward
0 new messages