Page 3 of 3 FirstFirst 1 2 3
Results 31 to 43 of 43

Thread: Bestand openen in App

  1. #31
    Je weet toch dat als je een file in .\assets\internal\ zet, dat je dat voor de hele configuratie moet doen hè. En niet alleen voor de debug configuratie. Als je dus bovenin dat scherm kijkt waar je die remote.path zet, moet je zorgen dat je dat niet alleen in de debug.config doet (of je moet ook echt allen maar een debug compile maken).



    Anders weet ik het ook niet meer.

  2. #32
    Ik had: assets\internal
    En nu: .\assets\internal\

    Het lijkt nu wel te werken

    Morgen eens zoeken waar het bestand nu opgeslagen staat, en of de bestanden van alle App's nu in een Map kunnen komen te staan.

    Edit:
    Het bestand staat in: /data/user/0/com.embarcadero.Test4/files

    Dus niet in een Map die ik voor alle App's kan gebruiken.
    Last edited by MMSoft; 30-Aug-19 at 13:20.

  3. #33
    Ik las deze discussie met interesse, maar mis nog eigenlijk de "directoryseperator" , ik gebruik PathDelim ipv de / of \ zodat het niet uitmaakt op welk systeem ik deploy. wat snelheids winst betekend omdat ik een kleine wijziging in mijn app sneller onder windows check dan hem elke keer op mijn android telefoon moet wachten.

  4. #34
    Quote Originally Posted by Ronaldinho View Post
    Ik las deze discussie met interesse, maar mis nog eigenlijk de "directoryseperator" , ik gebruik PathDelim ipv de / of \ zodat het niet uitmaakt op welk systeem ik deploy.
    Dan kun je ook de TPath.Combine() gebruiken (zoals in meerdere snippets te zien is.
    Delphi Code:
    1. path := TPath.Combine(TPath.GetDocumentsPath, 'Test.txt');

  5. #35
    Ik ben ook een beetje aan het testen geweest.
    Als je een directory zoekt die je zelf aan kan passen, moet je denk ik TPath.GetPublicPath gebruiken. Dan kom je in de directory: storage/emulated/0/android/data/com.embarcadero.testapp/files uit. (Android 4 & 9)

    Deze directory kun je benaderen via 'mijn bestanden' op android zelf, maar ze zijn ook te benaderen vanuit windows en dan zijn de bestanden dus handmatig aan te passen (wat MMSoft graag wil).

    Met TPath.GetDocumentsPath kom je uit in:
    data/data/com.embarcadero.testapp/files (Android 4)
    data/user/0/com.embarcadero.testapp/files (Android 9) en daar kom je van 'buitenaf' niet bij.

    Wat ik me nog wel afvraag is waarom MMSoft niet bij TPath.GetSharedDocuments kan komen. Zowel Android 4 als 9 gaan hier prima met de permissions 'Read & Write External storage' aangevinkt.
    Niemand houdt meer van hard werken dan diegene die ervoor betaalt.

  6. #36
    Wat ik me nog wel afvraag is waarom MMSoft niet bij TPath.GetSharedDocuments kan komen. Zowel Android 4 als 9 gaan hier prima met de permissions 'Read & Write External storage' aangevinkt.
    Welke versie Rad Studio gebruik je ?
    Ik merk dat er verschil zit tussen 10.1 en 10.3 (die ik nu gebruik).

  7. #37
    Ik heb zelf versie 10.2
    Niemand houdt meer van hard werken dan diegene die ervoor betaalt.

  8. #38
    Nu ik weet dat je de App in kunt stellen voor toegang tot bepaalde zaken (waaronder dus ook de Bestanden)
    https://www.nldelphi.com/showthread....10-3-(Android) Zie post #9

    Doe ik het zo:

    path:= System.IOUtils.TPath.GetSharedMusicPath;
    path := Copy( path , 0, ( Length(path ) - 5) ); //De Laatste 5 karr. verwijderen
    path := path + 'MMSoft';
    Bestand := path + '/naam van bestand';

    Dat lijkt nu perfect te werken (getest met zowel lezen als ook schrijven van/naar een bestand)...

  9. #39
    De Code in #38 werkt (bij mij) perfect voor een path naar het interne geheugen van mijn Telefoon.

    Maar nu heb ik data op de SDCard staan waar ik het path van wil weten, hoe kan ik dit het beste opvragen denken jullie ?

  10. #40
    Je kan: 'External storage helper functions for Android' downloaden.

    Miscellaneous "flattened" helper functions for Android external storage from the Environment class, for Delphi and C++

    GetExternalStorageState: string;
    isExternalStorageWritable: boolean;
    isExternalStorageReadable: boolean;

    GetExternalStorageDirectory: string;
    GetDataDirectory: string;
    GetDownloadCacheDirectory: string;
    GetRootDirectory: string;
    getStorageState(FilePath : string) : string;
    isExternalStorageEmulated : boolean;
    isExternalStorageRemovable : boolean;
    //this does not work on all flavours of Android
    function GetExternalSDCardDirectory: string;

    This is the most robust way of getting the SD cards locations
    function GetSysSecondaryStorage: string;
    function GetSysExternalStorage: string;


    For C++ and Delphi add the .pas files to your project, then use "Use Unit" to add Androidapi.IOUtilsEx to your uses clause and in C++, to #include <Androidapi.IOUtilsEx.hpp>
    met GetExternalSDCardDirectory of GetSysSecondaryStorage kan je dan je extSdCard vinden.

    Er zit trouwens verschil in waar je de ext SD card kan vinden.
    Bij mij op
    android9 : /storage/0000-0000/
    andoid 4.4.2 : /storage/extSdCard/

    Ik hoop dat je er wat mee kunt.
    Niemand houdt meer van hard werken dan diegene die ervoor betaalt.

  11. #41
    Bedankt !

  12. #42
    Delphi & OO in Vlaanderen SamWitse's Avatar
    Join Date
    Sep 2007
    Location
    Brussel
    Posts
    833
    Net een hele week testen testen en testen achter de rug, om nu vast te stellen dat
    storage/emulated/0/ HETZELFDE IS ALS sdcard/

    ...en omdat er geen files maar enkel folders in sdcard/ staan, vond ik geen files!

    maar GetExternalSDCardDirectory uit de unit Androidapi.IOUtilsEx geeft je het gevraagde.

    En ik ben klaar voor het gekkenhuis!
    Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.

    Sam Witse.
    Delphi & OO in Vlaanderen

  13. #43
    wel dapper hoor Delphi gebruiken voor een app ...

Page 3 of 3 FirstFirst 1 2 3

Thread Information

Users Browsing this Thread

There are currently 3 users browsing this thread. (0 members and 3 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •