PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Dossier "Download" Android
Dossier "Download" Android
Débuté par Shanks, 13 sep. 2018 09:04 - 4 réponses
Membre enregistré
15 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 09:04
Bonjour à tous,

je voulais savoir si il était possible de télécharger un fichier depuis son application dans le répertoire "Download" à la racine.

Comme en Java avec "Environment.DIRECTORY_DOWNLOADS"

Avec WM je ne sais que enregistrer dans "/sdcard/Download/" qui enregistre mes fichiers dans "/storage/emulated/10/download" et donc quand je vais dans "Téléchargements" de ma tablette il n'y a rien forcément.

D'avance merci à vous.
Message modifié, 13 septembre 2018 - 09:11
Membre enregistré
51 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 09:14
Bonjour,
je partirais sur quelque chose comme ça.

nEtat est un entier
nEtat = SysEtatCarteStockage()
SI nEtat = sysCarteDisponible ALORS
sRep est une chaîne
sRep = SysRepCarteStockage() + "/Download"
// Création d'un fichier dans le répertoire Download
fCrée(ComplèteRep(sRep) + "monFichier.txt")
FIN
Message modifié, 13 septembre 2018 - 09:15
Membre enregistré
15 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 09:59
Suram a écrit :
Bonjour,
je partirais sur quelque chose comme ça.

nEtat est un entier
nEtat = SysEtatCarteStockage()
SI nEtat = sysCarteDisponible ALORS
sRep est une chaîne
sRep = SysRepCarteStockage() + "/Download"
// Création d'un fichier dans le répertoire Download
fCrée(ComplèteRep(sRep) + "monFichier.txt")
FIN
Message modifié, 13 septembre 2018 - 09:15


Merci pour ta réponse Suram, mais mon fichier va toujours dans "storage/emulated/10/Download"

nEtat est un entier
nEtat = SysEtatCarteStockage()
SI nEtat = sysCarteDisponible ALORS
sRep est une chaîne
sRep = SysRepCarteStockage() + "/Download"
// Récupération du fichier dans le répertoire Download
FTPRécupère(IDConnexion, "Chemin de mon fichier", sRep)
FIN

Je ne comprends pas pourquoi il ne va pas dedans :/
Je suis avec une tablette sous android 4.3
Membre enregistré
51 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 10:36
Etrange, chez moi ca fonctionne bien.
En fouillant j'ai trouvé ça : https://sites.google.com/site/wikismartphone/generalites/le-stockage-des-donnes-dans-android
Apparement, "storage/emulated/10/" est un répertoire utilisateur.

Peut être regarder si il y avait déjà un compte google associé sur la tablette.

Tiens moi au courant, si tu trouves.
Message modifié, 13 septembre 2018 - 10:39
Membre enregistré
15 messages
Popularité : +1 (1 vote)
Posté le 13 septembre 2018 - 11:13
Merci pour ta réponse, je comprends mieux.

J'utilise une Tablette Astrata, une tablette utilisée par les chauffeurs routiers.
Et effectivement il y a des profils, (user et owner).

Mais ce que je ne comprends pas c'est qu'avec une appli créée avec Android Studio et le code ci-dessous, je peux enregistrer dans le dossier "Download" à la racine.

mWebView.setDownloadListener(new DownloadListener()
{
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setMimeType(mimeType);
String cookies = CookieManager.getInstance().getCookie(url);
request.addRequestHeader("cookie", cookies);
request.addRequestHeader("User-Agent", userAgent);
request.setDescription("Fichier téléchargé avec mon appli");
request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(url, contentDisposition, mimeType));
DownloadManager mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
mDownloadManager.enqueue(request);
Toast.makeText(getApplicationContext(), "Téléchargement en cours.",Toast.LENGTH_LONG).show();
}
});

Alors oui, il s'agit d'une webview mais le fait est qu'elle enregistre dans le dossier "Download" et non "/storage/emulated/10/Download".
Je voulais donc faire la même chose avec WM.
(J'ai essayé de faire une WebView avec WM (Champ HTML) mais au moment de télécharger un fichier l'appli plante lol)
Message modifié, 13 septembre 2018 - 11:14