IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Besoin d'aide, je suis débutant ! Développement de ma première application / Projet.


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai Avatar de TartoPomme
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut Besoin d'aide, je suis débutant ! Développement de ma première application / Projet.
    Bonjour,

    Je suis, comme dit dans le titre de cette discussion, débutant en xml ainsi qu'en java... Le problème est que je dois développer une application android pour un projet.
    Je crois avoir déjà bien avancé avec ce que j'ai trouvé sur internet, mais là s'arrête cette technique, car je n'arrive plus à avancer dans mon travail, n'ayant pas les réponses à mes questions...
    Je viens donc vous demandez de l'aide s'il vous plaît !!!
    fin que vous ne soyez par perdu je vais vous parler en détail de mon application ainsi que son fonctionnement. (Pour plus de lisibilité, je mettrais ça sous forme de chapitre).

    Le projet, But :

    Le but de ce projet est de pouvoir arroser un espace vert à distance, et récupérer des informations comme l'humidité du sol. De n'importe ou sans se soucier des kilomètres présents entre le système et l'utilisateur.
    Physiquement, mon groupe et moi avons choisi d'utiliser une carte Arduino avec un shield GSM, une électrovanne ainsi qu'un capteur d'humidité, le tout sous alimentation solaire.
    Grâce à ce shield GSM, la carte Arduino peut recevoir des "ordres", par l'envoi de sms.
    Pour l'interface Homme/Machine, nous avons opté donc pour une application, car sur un smartphone, on pensait que c'était le plus simple afin d'envoyer des sms via la carte sim de l'appareil.

    Mes différents problèmes : (Je vous préviens il y en a beaucoup...)

    Pour mon application je n'ai aucun problème du côté xml, mais le souci vient du java.
    Je compte, à partir du menu de l'application, enregistrer directement le numéro de la carte sim du shield GSM, afin de l'utiliser plus tard, dans l'application. Malheureusement, après avoir suivi plusieurs forums et vidéos à ce sujet, ça ne marche pas.
    Ensuite, je voudrais pouvoir envoyer des sms prédéfini par l'application, afin que l'arduino reconnaisse ces messages prédéfinis et qu'elle puisse faire l'action demandée.
    Par exemple, sur l'application, j'ai un bouton "Humidité", alors quand on appuie dessus, il faudrait qu'un message soit envoyé du smartphone à l'arduino, que l'arduino reconnaisse les caractères et qu'elle renvoie le taux d'humidité.
    Donc pour ceci, je n'ai pas besoin d'aide concernant la programmation C de l'arduino, mais seulement de l'aide du côté java de l'application.
    Je voudrais aussi intégrer à mon application des informations contenues sur internet comme la météo local. (météo France,...)

    Voilà, j’espère que vous aurez des idées afin de m'aider, je peux vous faire quelques screens de mon code si besoin.

  2. #2
    Membre éclairé Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Par défaut
    Concretement tu veux envoyer un message (SMS) depuis ton application?

  3. #3
    Membre à l'essai Avatar de TartoPomme
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut
    Oui, c'est cela.

  4. #4
    Membre à l'essai Avatar de TartoPomme
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut
    Je pense avoir trouvé mon problème.
    J'ai 2 activité au total, dans la première, l'utilisateur inscrit le numéro sim de son projet, et dans la deuxième, il interagit grâce a des boutons envoyant des messages pré-programmé.
    Je pense que mon problème est la façon dont j'ai enregistré le numéro de téléphone dans la mémoire de l'appareil, et ensuite la façon dont je refais appel aux données.
    J'utilise un "SharedPreferences".
    Voici le code java de ma première activité:

    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
    package android.waterconnect.waterconnect;
     
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.TextView;
     
    public class MainActivity extends AppCompatActivity {
     
        //Déclaration des différents éléments.
        private EditText editTextNumero;
        private Button btnLogin;
        private CheckBox mCheckBox;
        private TextView textView;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            //attribution de noms(id) aux éléments.
            editTextNumero = (EditText) findViewById(R.id.numero);
            btnLogin = (Button) findViewById(R.id.btnLogin);
            mCheckBox = (CheckBox) findViewById(R.id.checkbox);
            textView = (TextView) findViewById(R.id.tv1);
     
            //Valeur par défaut + attribution key.
            SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
            int numero = sharedPreferences.getInt("numero", -1);
     
            //Test de compatibilité + affichage en haut à gauche.
            if (numero != -1){
                textView.setText("Bonjour, le dernier numéro enregistré est le : " + numero);
            }
     
            btnLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent menuActivityIntent = new Intent(MainActivity.this, MenuActivity.class);
                    startActivity(menuActivityIntent);
                }
            });
     
        }
     
        public void Save (View view){
     
            String numeroStr = editTextNumero.getText().toString();
            int numero = Integer.parseInt(numeroStr);
     
            SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
     
            editor.putInt("numero", numero);
     
            editor.apply();
        }
    }
    Ainsi que celui de la deuxieme:

    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
    package android.waterconnect.waterconnect;
     
    import android.content.DialogInterface;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.telephony.SmsManager;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
     
    public class MenuActivity extends AppCompatActivity {
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu);
     
            //***** Boutton Batterie *****.
            //On récupère le boutton batterie en XML grâce à son id.
            Button btnBattery = (Button) findViewById(R.id.battery);
            //Le numéro sim est déjà enregistré et le message sera prédéfini.
            final String msgb = "donnees_batterie";
            final String num = getString(R.string.numero);
     
            btnBattery.setOnClickListener(new View.OnClickListener() {
     
                @SuppressWarnings("deprecation")
                public void onClick(View v) {
                    if (num.length() >= 4){
                        SmsManager.getDefault().sendTextMessage(num, null, msgb, null, null);
                    }else{
                        Toast.makeText(MenuActivity.this, "Erreur, le numéro est peut-être mal enregistré.", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            //***** Boutton Batterie *****.
     
     
     
            //***** Boutton Humidité *****.
            //On récupère le bouton humidité en XML grâce à son id.
            Button btnHumidity = (Button) findViewById(R.id.humidity);
     
            //Message prédéfini.
            final String msgh = "donnees_humidite";
     
            btnHumidity.setOnClickListener(new View.OnClickListener() {
                @SuppressWarnings("deprecation")
                public void onClick(View v) {
                    SmsManager.getDefault().sendTextMessage(num, null, msgh, null, null);
                }
            });
            //***** Boutton Humidité *****.
        }
    }
    Le deuxième bout de code est en cour, q=car j'essaye de régler ce problème pour faire la suite.
    Merci a ceux qui m'aideront !!!

  5. #5
    Membre à l'essai Avatar de TartoPomme
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut
    Bonjour, j'ai encore avancé depuis hier, et je commence a voir une lueur d'espoir !!!

    Maintenant mon problème est que quand je récupère une variable de mon "sharedPreferences", il se met directement par ma valeur par défaut.
    En gros, j'aimerais récupérer la variable numéro de ma première activité, pour m'en servir dans ma deuxième, mais celle si ce met directement sous la valeur par défaut soit "0" ici.

    Voici le code java de ma première activité :
    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
    package android.waterconnect.waterconnect;
     
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class MainActivity extends AppCompatActivity {
     
        //Déclaration des différents éléments.
        private static EditText editTextNumero;
        private static Button btnLogin;
        private static CheckBox mCheckBox;
        private static TextView textView;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            //attribution de noms(id) aux éléments.
            editTextNumero = (EditText) findViewById(R.id.numero);
            btnLogin = (Button) findViewById(R.id.btnLogin);
            mCheckBox = (CheckBox) findViewById(R.id.checkbox);
            textView = (TextView) findViewById(R.id.tv1);
     
            //Valeur par default / Restaure valeur par défaut. + attribution key. (Ici j'ai choisis comme ensemble de pref : "sharedPreferences", mais j'aurais pu choisir "numArduino".)
            SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
            final int numero = sharedPreferences.getInt("numero", -1);
     
            //Test de compatibilité + affichage en haut à gauche.
            if (numero != -1){
                textView.setText("Bonjour, le dernier numéro enregistré est le : 0" + numero);
            }else{
                Toast.makeText(MainActivity.this, "Erreur, veuillez rentrer un numero.", Toast.LENGTH_SHORT).show();
            }
     
            btnLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent menuActivityIntent = new Intent(MainActivity.this, MenuActivity.class);
                    menuActivityIntent.putExtra("numero", numero);
                    startActivity(menuActivityIntent);
                }
            });
     
        }
     
        public void Save (View view){
     
            //On récupère la chaîne de caractères dans l'EditText et on la change en Int.
            String numeroStr = editTextNumero.getText().toString();
            int numero = Integer.parseInt(numeroStr);
     
            //Indique qu'on change une valeur.
            SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
     
            //On donné a la key "numero" la valeur de la variable "numéro".
            editor.putInt("numero", numero);
     
            //On applique les changements.
            editor.commit();
        }
    }
    Ainsi que le code Java de la deuxième activité :
    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
    package android.waterconnect.waterconnect;
     
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.telephony.SmsManager;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
     
    public class MenuActivity extends AppCompatActivity {
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu);
     
            //appel a ma variable "numero" des SharedPreferences.
            SharedPreferences sharedPreferences = getSharedPreferences("numero",MODE_PRIVATE);
            int test = sharedPreferences.getInt("numero", 0);
            //Cast int en String.
            final String num = String.valueOf(test);
     
     
            //***** Bouton Batterie *****.
            //On récupère le bouton batterie en XML grâce à son id.
            Button btnBattery = (Button) findViewById(R.id.battery);
            //Message prédéfini pour la batterie.
            final String msgb = "donnees_batterie";
     
            btnBattery.setOnClickListener(new View.OnClickListener() {
     
                @SuppressWarnings("deprecation")
                public void onClick(View v) {
                    if (num.length() >= 4){
                        SmsManager.getDefault().sendTextMessage(num, null, msgb, null, null);
                    }else{
                        Toast.makeText(MenuActivity.this, "Erreur, le numéro est peut-être mal enregistré."+num, Toast.LENGTH_SHORT).show();
                    }
                }
            });
            //***** Bouton Batterie *****.
     
     
     
            //***** Bouton Humidité *****.
            //On récupère le bouton humidité en XML grâce à son id.
            Button btnHumidity = (Button) findViewById(R.id.humidity);
     
            //Message prédéfini.
            final String msgh = "donnees_humidite";
     
            btnHumidity.setOnClickListener(new View.OnClickListener() {
                @SuppressWarnings("deprecation")
                public void onClick(View v) {
                    SmsManager.getDefault().sendTextMessage(num, null, msgh, null, null);
                }
            });
            //***** Bouton Humidité *****.
        }
    }
    Merci à ceux qui m'aideront, c'est très gentil de leur part !

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Je vasi répondre à coté de la plaque mais , coté architecture vous n'êtes pas partit sur la bonne solution.

    Des système comme celui que tu fais fonctionne en général de 2 façons :

    - Connecté à internet via wifi/filaire
    - Connecté via un réseau alternatif type lora ou sigfox

    A partir de là l'appareil remonte à intervalles réguliers ses points de mesure (toutes les secondes/minutes/heure en fonction du besoin). Ces points de mesure sont stocké dans une base de données (de préférence base temporelle type influxdb,Prometheus, timescaledb , etc ...).

    L'application mobile vient ensuite communiqué avec le serveur stockant les données des différents appareils pour afficher ce dont elle à besoin.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Besoin d'aide, je suis espionnée
    Par Miminthesky dans le forum Sécurité
    Réponses: 20
    Dernier message: 24/01/2013, 16h17
  2. Besoin d'aide pour un débutant
    Par MrBoo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/06/2009, 15h55
  3. SOS mon partiel s'approche jé besoin d'aide je suis nulle en shell
    Par Fatima-Ezzahra dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/06/2007, 14h33
  4. Besoin d'aide je suis débutant débutant!
    Par Micromat dans le forum Langage
    Réponses: 1
    Dernier message: 15/07/2006, 23h05
  5. Besoin d'aide pour un débutant en procédure stockée
    Par el gringo dans le forum Débuter
    Réponses: 2
    Dernier message: 06/04/2006, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo