Italian Trasferire un file nella "memoria interna" Android

Gottrik

Member
Licensed User
Salve

Usando B4j, quando copio MioFile.doc (che si trova nella cartella Objects) in una cartella che dovrà trovarsi in C:\ , uso le seguenti istruzioni:

Creo la cartella C:\MiaDir e poi vi trasferisco MioFile.doc

File.MakeDir("C:\", "MiaDir")

File.Copy(File.DirApp,"MioFile.doc","C:\MiaDir","MioFile.doc")

E funziona …

Adesso vorrei trasferire MioFile.doc nella “memoria interna” del telefono Android, ovviamente già collegato al PC , come posso fare ?

File.Copy(File.DirApp,"MioFile.doc", ??? ( come definire la destinazione ? )


Grazie per l’aiuto
 

Gottrik

Member
Licensed User
Tutto tace ... ho un sospetto ... non avrò fatto una domanda cretina ?
Buon ... a tutti !
 

LucaMs

Expert
Licensed User
Tutto tace ... ho un sospetto ... non avrò fatto una domanda cretina ?
Buon ... a tutti !
No, per niente; è che magari non si ha una risposta... "ottimale".

Se ho capito bene, vuoi trasferire file da Android al tuo PC.
Specifichi anche che i due apparecchi sono connessi tramite USB; in questo caso, a dire il vero, non vedo l'utilità di farlo tramite software (app Android), visto che puoi usare il normale e sempre disponibile Explorer di Windows.
Diverso sarebbe dover trasferire i file tramite wifi; in questo caso potresti usare il Bridge ed in particolare l'FTP.

Magari spiegaci un po' meglio il... "problema"
 

Star-Dust

Expert
Licensed User
In parte..... cmq il percorso Varia da dispositivo a dispositivo.
Vedi che percorso ha il tuo dispositivo collegandolo al PC.
Innogni caso a volte non e possibile avere un percorso accessibile.
 
Last edited:

Gottrik

Member
Licensed User
Provo a riformulare la mia domanda e mi scuso se “la faccio lunga” …

Distribuisco una mia applicazione per PC inviando una mail con allegata una cartella contenente il programma eseguibile “Programma.exe” e tutti i file occorrenti (File1, File2 ecc ).

Per funzionare, “Programma.exe” e tutti i file occorrenti dovranno trovarsi nella cartella C:\Mio_Programma

Nella cartella che spedisco è presente anche un programma di installazione ( Install.exe oppure Install.jar ) che ha il compito di creare la cartella C:\Mio_Programma e trasferirvi poi tutto quanto serve ( Programma.exe + File1 + File2 ecc. ecc. )

-Install.exe ( creato con VB6 ) esegue le seguenti istruzioni:

MkDir "C:\Mio_Programma

FileCopy "Programma.exe", "C:\Mio_Programma\Programma.exe"

FileCopy "File1", "C:\Mio_Programma\File1"

FileCopy "File2", "C:\Mio_Programma\File2"

ecc. ecc.


In alternativa uso anche Install.jar ( creato con B4J ) che esegue le seguenti istruzioni :

File.MakeDir("C:\", "Mio_Programma")

File.Copy(File.DirApp,"Programma.exe","C:\Mio_Programma","Programma.exe")

File.Copy(File.DirApp,"File1","C:\Mio_Programma","File1")

File.Copy(File.DirApp,"File2","C:\Mio_Programma","File2")

ecc. ecc.


Ora, usando Install.jar ( creato con B4J ) , vorrei distribuire una mia applicazione “Programma.apk” per Android, avendo quindi come destinazione non più la cartella “C:\Mio_Programma” ma una cartella “Mio_Programma” che dovrà essere creata nella “memoria principale” del telefono, collegato al PC con il cavetto USB.

File.Make e poi ??? ( come creare la cartella Mio-Programma nella “memoria principale” del telefono ? )

File.Copy (File.DirApp, “Programma.apk” , e poi ??? ( come trasferirvi Programma.apk ? )

File.Copy (File.DirApp, “File1”, e poi ??? ( come trasferirvi File1 ? )

File.Copy (File.DirApp, “File2”, e poi ??? ( come trasferirvi File2 ? )

ecc. ecc.


Saluti e Buone Feste a tutti !
 

udg

Expert
Licensed User
Ciao, non so se quanto da te descritto sia fattibile su Android.
Io uso due sistemi: invio di apk tramite mail oppure pubblicazione di apk su un server ed invio del link al "cliente". In entrambi i casi, chi riceve si limita ad un click sul link ricevuto e Android provvede ad installare (in pratica scarica l'apk in una sua area temporanea e poi esegue l'installazione vera e propria che risulta nell'app essere disponibile tra quelle del device; poi, in genere, tocca all'utente "promuovere" l'app tra quelle di immediato utilizzo (home e pagine simili).
 

Gottrik

Member
Licensed User
Grazie "udg" , anch'io invio l'Apk con una mail
Al primo utilizzo appare un codice che deve essermi comunicato.
Rispondo poi inviando una App configurata per funzionare 'solo' facendo riferimento a quel codice.
La mia domanda nasce dalla necessità di accedere dall'esterno (con un PC ) in modo che alcuni file possano poi trovarsi su un certo percorso, sollevando l'utilizzatore dal fastidio di navigare nelle memorie del telefono ... Se, agendo con il suo PC , l'utilizzatore potesse eseguire un mio programma di installazione tutto avverrebbe senza intoppi ...

Saluti e grazie per la risposta.
 
Last edited:

sirjo66

Well-Known Member
Licensed User
sinceramente la vedo una soluzione molto nebulosa
il collegamento tra PC e Android con cavetto USB non è comoda per l'utente poichè deve installare sul PC i driver corretti (e non sempre avviene in automatico) e poi il PC vede Android tramite il suo nome che quindi può variare ad ogni utente, e mappare una unità logica è praticamente impossibile farglielo fare all'utente.
Io ti consiglierei di pubblicare la tua app su internet e l'utente semplicemente avendo un link la scarica e la installa.
Alla prima installazione la tua app si accorge che manca la cartella che ti serve, quindi capisce che è la prima installazione, crea tutte le cartelle ed i file che gli servono e se dentro queste cartelle servono dei file specifici glieli copia dentro, se necessario scaricandoli da un server (quindi non serve che siano per forza dentro alla tua app).

Poi io faccio così:
quando la app parte si accorge che non è stato inserito il "codice di attivazione", per cui calcola un "numero di serie" (quindi unico per ogni telefono) che appare all'utente e il programma funziona in versione dimostrativa, dove cioè ci sono funzioni disattivate, e quelle attive funzionano in modo limitato, solo per mostrare all'utente come funziona la mia app.
A questo punto l'utente mi comunica il "numero di serie", io ci faccio alcuni calcoli (ad esempio somme, xor, MD5 eccetera) e mi risulta il "codice di attivazione", che andrò a comunicare all'utente, il quale lo inserisce nella maschera di configurazione e la app (eseguendo gli stessi calcoli) si accorge che è corretta e sblocca il programma.
Non c'è quindi bisogno di reinviare la app (che penso dovrai personalizzare e ricompilare).
 
Last edited:

Star-Dust

Expert
Licensed User
sinceramente la vedo una soluzione molto nebulosa
il collegamento tra PC e Android con cavetto USB non è comoda per l'utente poichè deve installare sul PC i driver corretti (e non sempre avviene in automatico) e poi il PC vede Android trmite il suo nome che quindi può variare ad ogni utente, e fargli mappare una unità logica è praticamente impossibile farglielo fare all'utente.
Io ti consiglierei di pubblicare la tua app su internet e l'utente semplicemente avendo un link la scarica e la installa.
Alla prima installazione la tua app si accorge che manca la cartella che ti serve, quindi capisce che è la prima installazione, crea tutte le cartelle ed i file che gli servono e se dentro queste cartelle servono dei file specifici glieli copia dentro, se necessario scaricandoli da un server (quindi non serve che siano per forza dentro alla tua app).

Poi io faccio così:
quando la app parte si accorge che non è stato inserito il "codice di attivazione", per cui calcola un "numero di serie" (quindi unico per ogni telefono) che appare all'utente e il programma funziona in versione dimostrativa, dove cioè ci sono funzioni disattivate, e quelle attive funzionano in modo limitato, solo per mostrare all'utente come funziona la mia app.
A questo punto l'utente mi comunica il "numero di serie", io ci faccio alcuni calcoli (ad esempio somme, xor, MD5 eccetera) e mi risulta il "codice di attivazione", che andrò a comunicare all'utente, il quale lo inserisce nella maschera di configurazione e la app (eseguendo gli stessi calcoli) si accorge che è corretta e sblocca il programma.
Non c'è quindi bisogno di reinviare la app (che penso dovrai personalizzare e ricompilare).
Si può pubblicare anche su Aptoide e confermare la licenza con un qualsiasi metodo, tu già hai descritto come.
Anche un link a Dropbox, via bluetooth... Quella del cavetto anche a me sembra anomala
 

Gottrik

Member
Licensed User
Ringrazio Sirjo66 e Star-Dust per i loro consigli molto utili .

Per me, spedire una seconda mail ricompilata tenendo conto del codice di attivazione non è un problema anche perché mi serve per aggiornare la lista degli utenti ... quindi potrei continuare così.

"Alla prima installazione la tua app si accorge che manca la cartella che ti serve, quindi capisce che è la prima installazione, crea tutte le cartelle ed i file che gli servono e se dentro queste cartelle servono dei file specifici glieli copia dentro, se necessario scaricandoli da un server (quindi non serve che siano per forza dentro alla tua app)"

Sirio66 : A parte l'uso di un server, che escludo, un semplice esempio relativo a questa procedura ?

E già che ci sono, un'ultima domanda che rivelerà la mia scarsissima cultura informatica :
Con VB6 " Buonanima e che Dio lo benedica ... " per trasformare un numero decimale in esadecimale bastava :

dim a,b
b= Hex(a)

Ho cercato l'equivalente in B4A e mi sono perso ... poi non ricordavo più dove avevo parcheggiato l'auto e avevo anche il telefono scarico ... :(

Dimenticavo ... a parte l'utilità o meno del procedimento, mi sembra di capire che venga confermata l'impossibilità di creare cartelle e file
nella memoria del telefono, agendo da un PC collegato via USB , tramite il linguaggio B4J ... è cosi ?


Grazie ancora per il vostro aiuto
 

Gottrik

Member
Licensed User
Sirjo66 , ho seguito il tuo consiglio :

Alla prima installazione la tua app si accorge che manca la cartella che ti serve, quindi capisce che è la prima installazione, crea tutte le cartelle ed i file che gli servono e se dentro queste cartelle servono dei file specifici glieli copia dentro ...

Grazie
 

GIS

Active Member
Licensed User
Ho letto fino a un certo punto, forse dirò una cavolata. Ma perché dovrebbe aprile email tramite pc, quando si può fare tramite cell e scaricare e installare il tutto?.
 
Top