Italian b4a

lelelor

Active Member
Licensed User
buongiorno, problema:
creo una app nuova chiamata "appnuova", la eseguo in modalità debug, sul device non mi crea la directory "/storage/emulated/0/Android/data/appnuova/"

c'è qualche parametro da mettere?

dove sbaglio ?

grazie
 

Star-Dust

Expert
Licensed User
Longtime User
Il packageId
 

lelelor

Active Member
Licensed User
quanto è importante per te???
approfondisci per bene B4A
non è importante, posso benissimo creare la directory che mi interessa "a mano" , comunque se CHIEDO è perchè non so anche dopo avere "studiato"
ma si sa che chiedere è lecito rispondere, magari anche con un altro tono, è educazione

grazie per la risposta
 

lelelor

Active Member
Licensed User
Ma cosa devi fare, esattamente? Scrivi (e leggi) i dati che la tua app usa nella File.DirInternal.
no no, sul percorso che ho indicato, dove ho già installato app che mi hanno creato le directory "/storage/emulated/0/Android/data/"
 

Star-Dust

Expert
Licensed User
Longtime User
@lelelor purtroppo non sono davanti al PC e posso aiutarti limitatamente
Il nome dell'app non è l'identificativo dell'app. Possono esserci più app con lo stesso nome ma ogni App ha un suo Package ID

Devi impostare l'ID Package per ogni App che crei (altrimenti ti sovrascrive sulla precedente perché ha lo stesso ID) e puoi farlo dal menù dell'IDE su Configura Ambiente di compilazione nel menù Progetto.

Il formato dovrebbe essere del tipo: It.lelelor.MyApp. Non necessariamente deve essere divisa in tre livelli ma sicuramente non deve contenere spazi.

Nella cartella dati creerà una sottocartella con il nome dell'ID Package.

Come ti hanno già detto ti servirà a poco soprattutto nelle ultime versioni di Android. App esterne non possono leggere i tuoi file e internamente puoi semplicemente usare file.DirInternal o file.DirDefaultExternal (che di fatto oggi non è più accessibile dall'esterno)

Se vuoi condividere un file condividi la cartella usando la libreria RuntimePermission. Come ha suggerito @giannimaione , se ti documenti sui cambiamenti degli SDK puoi scegliere la soluzione migliore.
Inoltre se spieghi cosa vuoi fare magari ti possiamo dare un suggerimento più preciso
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
cerca nei miei oltre 1000 messaggi, e ti renderai conto di quanto sono un napoletano cafone sgarbato (dal 2007)
A volte scrivendo nascono malintesi, succede spesso con Whatsapp (dove ormai uso un consulente per la diplomazia)
Le stesse cose che dette a voce hanno un senso scritte potrebbero essere intese diversamente.
 

lelelor

Active Member
Licensed User
La seconda parte del mio post NON era una domanda.
cerco di spiegarmi, quando eseguo il sorgente di solito mi crea la DirdefaultExternal "adroid\data\miaapp" ora non la crea, come suggerito da stardust, ho controllato IDE ed è tutto a posto

se creo a mano la DirdefaultExternal poi riesco anche a creare altre directory e file, non riesco a farlo fare dal sorgente e suppongo dalla APK.

il device dove installo l'App ha android 7

Grazie
 

LucaMs

Expert
Licensed User
Longtime User
cerco di spiegarmi, quando eseguo il sorgente di solito mi crea la DirdefaultExternal "adroid\data\miaapp" ora non la crea, come suggerito da stardust, ho controllato IDE ed è tutto a posto

se creo a mano la DirdefaultExternal poi riesco anche a creare altre directory e file, non riesco a farlo fare dal sorgente e suppongo dalla APK.

il device dove installo l'App ha android 7

Grazie
Quindi il tuo scopo è poter accedere "da fuori" (altre app o un explorer, magari quello di Windows)? E' a questo che non hai risposto, quale sia il tuo scopo, ma suppongo che sia così.

Se l'app è per te stesso e basta, quindi solo col tuo Android 7, puoi ancora farlo; con versioni più recenti no. Ma dipende anche dal valore che metti come android:targetSdkVersion, nel file Manifest.

A prescindere da tutto questo, usa File.GetSafeDirDefaultExternal, con qualunque valore di targetSdk... (questo sempre se vuoi accedere ai file da fuori, altrimenti sempre meglio usare la File.DirInternal).
 
Top