Créer un session en android

bonjour tout le monde,je travaille sur une application android et plus précisément sur la page log-in qui permet à un utilisateur de se connecter et d'accéder à son compte
mon application est déjà reliée avec une base de donnée c-à-d le truc de la vérification du mot de passe et du user entré avec ceux dans la base de données par l'utilisateur se passe bien ,ce que je veux moi c'est créer une session genre même si utilisateur passe à une autre activité de l'application il reste connecte sans qu'il doit login-in encore

et merci

4 réponses

  1. Modérateur
    Hello,
    Que se passe-t-il dans ton login? Tu appelles un Webservice? Si oui, que te retourne-t-il?
    0
    1. non j'utilise pas un Webservice ,voila mon code pour que vous puissiez comprendre

      package com.example.mainviewactivity;

      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      import java.io.UnsupportedEncodingException;
      import java.net.URL;
      import java.util.ArrayList;
      import java.util.List;

      import org.apache.http.HttpEntity;
      import org.apache.http.HttpResponse;
      import org.apache.http.NameValuePair;

      import org.apache.http.client.ClientProtocolException;
      import org.apache.http.client.HttpClient;
      import org.apache.http.client.entity.UrlEncodedFormEntity;
      import org.apache.http.client.methods.HttpPost;
      import org.apache.http.impl.client.DefaultHttpClient;
      import org.apache.http.message.BasicNameValuePair;
      import org.json.JSONArray;
      import org.json.JSONException;
      import org.json.JSONObject;

      import android.R.string;
      import android.net.ParseException;
      import android.os.Bundle;
      import android.app.Activity;
      import android.content.DialogInterface;
      import android.content.DialogInterface.OnClickListener;
      import android.content.Intent;
      import android.content.SharedPreferences;
      import android.util.Log;
      import android.view.Menu;
      import android.view.View;
      import android.widget.ArrayAdapter;
      import android.widget.Button;
      import android.widget.EditText;
      import android.widget.Toast;

      public class MainActivity extends Activity {
      EditText etUser ;
      EditText etPass ;
      Button bLogin ;
      String username;
      String password;
      HttpClient httpclient ;
      HttpPost httppost;
      ArrayList<NameValuePair> nameValuePairs ;
      HttpResponse response;
      HttpEntity entity ;
      String EXTRA_LOGIN="login";

      public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      initialise();
      }
      private void initialise()
      {
      etUser = (EditText) findViewById(R.id.user_email);
      etPass = (EditText) findViewById(R.id.user_password);
      bLogin = (Button) findViewById(R.id.connect);
      bLogin.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v)
      {
      httpclient = new DefaultHttpClient();
      httppost = new HttpPost("http://10.0.2.2/android_connect/index.php");
      username=etUser.getText().toString();
      password= etPass.getText().toString();
      //URL url=new URL(LoginDisplayActivity.);

      try{
      nameValuePairs =new ArrayList<NameValuePair>();
      nameValuePairs.add(new BasicNameValuePair("username",username));
      nameValuePairs.add(new BasicNameValuePair("password",password));
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
      response = httpclient.execute(httppost);
      if(response.getStatusLine().getStatusCode()==200){
      entity = response.getEntity();
      if(entity!=null){
      InputStream instream=entity.getContent();
      JSONObject jsonResponse=new JSONObject(convertStreamToString(instream));
      String retUser=jsonResponse.getString("username");
      String retPasss=jsonResponse.getString("userpass");
      // validate login
      if(username.equals(retUser)&& password.equals(retPasss)){
      /*SharedPreferences sp=getSharedPreferences("logindetails", 0);
      SharedPreferences.Editor spedit=sp.edit();
      spedit.putString("username",username);
      spedit.putString("userpass",password);//may not need to store password
      // close editor
      spedit.commit();*/
      etUser.setText("");
      etPass.setText("");
      Intent intent = new Intent(MainActivity.this, LoginDisplayActivity.class);
      //intent.putExtra(EXTRA_LOGIN, etUser.getText().toString());
      //intent.putExtra(EXTRA_PASSWORD, pass.getText().toString());
      startActivity(intent);
      }
      else{
      Toast.makeText(MainActivity.this,
      R.string.champs_erronees,
      Toast.LENGTH_SHORT).show();
      return;
      }
      }
      }

      }catch(Exception e){
      e.printStackTrace();
      Toast.makeText(MainActivity.this,
      R.string.champs_erronees,
      Toast.LENGTH_SHORT).show();
      return;
      }

      }//end on click

      });

      } //end initialise

      private static String convertStreamToString(InputStream is) {

      BufferedReader reader = new BufferedReader(new InputStreamReader(is));
      StringBuilder sb = new StringBuilder();

      String line = null;
      try {
      while ((line = reader.readLine()) != null) {
      sb.append(line + "\n");
      }
      } catch (IOException e) {
      e.printStackTrace();
      } finally {
      try {
      is.close();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      return sb.toString();
      }

      }
      0
      1. Modérateur
        C'est du code que tu as récupéré, non? Car le stockage des infos de connexion est fait.
        Quelques remarques:
        - c'est plus de moyen d'envoyer des données de connexion en clair. A minima, le password devrait être encodé
        - c'est encore plus moyen d'avoir, en retour JSON, les infos de connexion. Il faut plutôt renvoyer un code OK/KO
        - et, comble de l'horreur, ce n'est pas à toi de vérifier les infos de connexion mais au serveur

        Ce que tu dois stocker, c'est plutôt un "jeton", un cookie, un "truc" qui te dit que l'utilisateur s'est authentifié...
        0
        1. ok merci beaucoup pour votre aide
          0