Bonjour à tous,
J'ai un problème qui vas certainement vous paraître super simple mais moi je bloque.
Je développe sous android un espèce de traker maison, j'ai donc une classe "SaveFiles"qui récupère la variable d'un editText afin de créer un fichier dans lequel je veux enregistrer les coordonnées GPS. La deuxième "BroadcastCoord" doit quand à elle récupérer le chemin et le nom du fichier avec la méthode "getDirPath" afin d'y sauver les coordonnées. Le soucis est que celle-ci ne récupère rien en effet les getters reste null.
Si quelques âmes charitable passent dans le coin ... merci
La Classe SaveFiles
La Classe BroacastCoord
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 package gpsbom.plectre.com.gpsbom; import android.os.Environment; import android.util.Log; import java.io.File; import java.io.IOException; /** * Created by plectre on 09/03/17 * Classe de Gestion de dossier * E//storage/emulated/0/GpsÂ*Bom */ public class SaveFiles { private String path; private String DIR = "/Gps Bom"; private File fDossier; private File fichier; private String filePath; private String fName; private Boolean isCreate = false; public String getfFilePath(){return filePath;} public String getfName(){return fName;} public Boolean getIsCreate() {return isCreate;} public void testCarteSd(String pName) { // Test Si la carte est presente if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { Log.i("la carte", "presente !"); // On recupére le chemin du Dossier path = Environment.getExternalStorageDirectory().getPath(); //Log.e("path..", path); // Appel method de création du dossier createDir(pName); return; } else { Log.e("Carte", "absente"); } } // Création du Dossier GpsBom public void createDir(String pName) { fDossier = new File(path + DIR); this.filePath = String.valueOf(fDossier); this.fName = pName; fichier = new File(fDossier + "/"+fName+".txt"); if (!fDossier.exists()) { fDossier.mkdir(); Log.i("Dossier créer", ""); } if (!fichier.exists()) { try { fichier.createNewFile(); Log.e(pName, "Créer"); isCreate = true; } catch (IOException e) { e.printStackTrace(); } } else { Log.e(filePath, "Existe déjÃ*"); return; } filePath = String.valueOf(fDossier); //Log.e(DIR, "Existe"); Log.e(String.valueOf(fDossier), "fDossier"); Log.e(fName, "fName"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 package gpsbom.plectre.com.gpsbom; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import java.io.File; import java.io.FileWriter; import java.io.IOException; /** * Created by plectre on 09/03/17. * Classe qui récupére les position et se charge de les enregistrer sur * la mémoire Externe SD du device */ public class BroadcastCoord extends BroadcastReceiver { private String lat; private String lon; private String fDossier; private String fPath; //private String path = Environment.getExternalStorageDirectory().getPath(); private String NEW_LINE = System.lineSeparator(); // On recupere nom du dossier créer dans la classe SaveFile() public void getDirPath() { SaveFiles sv = new SaveFiles(); this.fDossier = sv.getfFilePath(); this.fPath = sv.getfName(); Log.i(fDossier, "fDossier"); Log.i(fPath, "fName"); } // Abonnement au Broadcast public void onReceive(Context context, Intent intent) { // Récuperation des coorddonnées envoyé par GpsService lat = intent.getStringExtra("lat"); lon = intent.getStringExtra("lon"); // Si le fichier est sauvegarder on enregistre les // cocrdonnées saveCoor(lat, lon); } public void saveCoor(String lat, String lon) { getDirPath(); Log.i("Save latitude", lat); Log.i("Save longitude", lon); File file = new File(fDossier,fPath+" .txt"); try { FileWriter output = new FileWriter(file, true); output.write(" , "); output.append(lon); output.write(NEW_LINE); Log.i("Enregistrement Ok",String.valueOf(fPath)); output.close(); } catch (IOException ex){ Log.e("Enregistrement fail",String.valueOf(ex)); } } }
Partager