Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] applications pour tous les API

[Android] applications pour tous les API

    14 août 2018 à 20:33:39

    Bonjour,

    Je voudrais savoir si il est possible de pouvoir faire en sorte qu'une application soit disponible pour tous les API même si dans mon code 

    j'utilise des méthode/objet qui nécessite un API supérieur ?

    Par exemple un ami m'a demander de lui faire une application qui permet de calculer la différence entre deux dates et il est sur Android 4.0.

    Donc dans mon code j'utilise les objets suivants : 

     LocalDate date1 = LocalDate.of(chaine_anne1, chaine_mois1, chaine_jour1);
     p = Period.between(date1, date2);

    Android studio me dit donc que : "Call requires API level 26 (current min is 16):java.time.Period"

    Sauf que je veux que l'application soit utilisable pour Android 4.0 existe t'il un moyen de palier à ce problème ?

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      15 août 2018 à 22:14:25

      Salut,

      La première question que tu dois te poser c'est est-ce que ça vaut le coup que ton application soit compatible Android 4.0 sachant que ça représente seulement quelques pourcents des utilisateurs dans le monde.

      Aujourd'hui, tu peux largement te permettre d'avoir une application qui n'est rétro compatible qu'Android 4.4.

      Sinon dans ton code, tu dois simplement sécuriser ton code avec des "if". Et dans le "else" tu mets du code rétrocompatible (mais souvent déprécié).

      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 19:14:41

        Je souhaite que mon applications soit compatible avec le maximum de version d'Android. 

        Je pense qu'avoir une applications compatible seulement avec les API 26 et supérieur n'est pas assez.

        Tu parles de code rétrocompatible peux-tu m'expliquer plus en détail ce que cela veux dire et comment il fonctionne ?

        • Partager sur Facebook
        • Partager sur Twitter
          18 août 2018 à 13:42:43

          Salut,

          Dans ton cas, tu vas devoir faire quelques chose comme ça :

          if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) 
          {
             LocalDate date1 = LocalDate.of(chaine_anne1, chaine_mois1, chaine_jour1);
             p = Period.between(date1, date2);
          }
          else
          {
              //code rétro compatible ici
          }

          Le but est donc de trouver du code rétro-compatible qui ferait l'équivalent ce qui est compliqué car le soucis est sur la classe Period et non sur une méthode.

          Dans ton cas, je pense que tu peux trouver ton bonheur via l'utilisation d'une bibliothèque tierce comme Jodatime : http://joda-time.sourceforge.net/apidocs/org/joda/time/Period.html

          -
          Edité par rolandl 18 août 2018 à 13:43:17

          • Partager sur Facebook
          • Partager sur Twitter

          [Android] applications pour tous les API

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown