[JAVA] L'histoire selon laquelle la mise à jour forcée n'a pas pu être mise en œuvre

Ce qui est écrit

  1. Pourquoi la mise à jour forcée n'a pas pu être effectuée
  2. Comment obtenir la version directement depuis le Play Store (alternative)

La raison pour laquelle la mise à jour forcée n'a pas pu être effectuée

--Lorsque vous installez l'apk créé lors du test interne sur la machine réelle, Il y avait des moments où la boîte de dialogue apparaissait et des moments où elle n'apparaissait pas. --La régularité de cet événement n'a pas pu être trouvée. ―― La seule chose que je peux dire, c'est que 13 heures se sont écoulées depuis que j'ai téléchargé l'apk vers le test interne. Les dialogues étaient souvent affichés.

Comment obtenir la version directement depuis le Play Store (alternative)

MainActivity.java


public class MainActivit {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Variable pour mettre la requête http
        Uri.Builder builder = new Uri.Builder();
        AsyncHttpRequest task = new AsyncHttpRequest(this);
        //Découvrez la version de l'application dans la boutique
        task.execute(builder);
}

AsyncHttpRequest.java


//La classe de communication asynchrone entraînera une erreur
public class AsyncHttpRequest extends AsyncTask<Uri.Builder, Void, String> {
    /**
     *Activité de l'appelant
     */
    private Activity mainActivity;
    /**
     *Version de l'application Store
     */
    private String newVersion;
    /**
     *Ressources partagées
     */
    private SharedPreferences sharedPreferences;

    public AsyncHttpRequest(Activity activity) {
        //Activité de l'appelant
        this.mainActivity = activity;
    }

    @Override
    protected String doInBackground(Uri.Builder... builder) {
        //Processus de lancement de requête http
        this.newVersion = "";
        String lang = getLocaleLang();
        try {
            //Les informations au moment de la communication sont résumées dans une classe constante
            this.newVersion = Jsoup.connect(PlayStoreConstants.STORE_BASE_URL + PlayStoreConstants.STORE_ID + "&locale=" + lang)
                    .timeout(PlayStoreConstants.TIMEOUT)
                    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .referrer(PlayStoreConstants.REFERRER)
                    .get()
                    .select(PlayStoreConstants.CSS_QUERY)
                    .get(7)
                    .ownText();
            //Enregistrez la version du magasin et utilisez-la dans Activité
            sharedPreferences = this.mainActivity.getSharedPreferences("version", MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString("storeVersion", this.newVersion);
            editor.apply();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return this.newVersion;
    }
   /**
     *Méthode pour obtenir la langue du terminal
     */
    public String getLocaleLang() {
        String localeLanguage = Locale.getDefault().getLanguage();
        return localeLanguage;
    }
}

PlayStoreConstants.java


/**
 *Classe constante de communication Playstore
 */
public class PlayStoreConstants {
    /**
     *URL du magasin
     */
    public static final String STORE_BASE_URL = "https://play.google.com/store/apps/details?id=";
    /**
     *Identifiant du magasin
     */
    //https://play.google.com/store/apps/details?id=hoge partie de hoge
    public static final String STORE_ID = "hoge";
    /**
     *URL de l'écran des détails du magasin
     */
    public static final String STORE_DETAIL_URL = "market://details?id=";
    /**
     *Stocker le délai de communication
     */
    public static final int TIMEOUT = 30000;
    /**
     *En-tête de référent
     * (Pour éviter les erreurs HTTP 403)
     */
    public static final String REFERRER = "http://www.google.com";
    /**
     *Requête CSS
     */
    public static final String CSS_QUERY = ".hAyfc .htlgb";
}

Recommended Posts

L'histoire selon laquelle la mise à jour forcée n'a pas pu être mise en œuvre
L'histoire selon laquelle le servlet n'a pas pu être chargé dans l'application Web Java
L'histoire selon laquelle le paramètre de requête de l'application iPhone n'a pas pu être obtenu avec le servlet
L'histoire de l'arrêt parce que le test des rails n'a pas pu être fait
Correspondant à "erreur que l'authentification de base ne réussit pas" dans le code de test "L'histoire qui n'a pas pu être faite"
Le cas où "apt-get update" défini dans "Dockerfile" n'a pas pu être exécuté au moment de "docker-compose build"
L'histoire que je n'ai pas pu construire après l'installation de plusieurs Java sur Windows
L'histoire selon laquelle la méthode d'initialisation de variable appelée par le constructeur Java ne doit pas être remplacée
[Gradle] L'histoire selon laquelle le fichier de classe n'existait pas dans le fichier jar
Notez que Spring Data JDBC n'a pas pu insérer
[Rails] Une histoire qui a continué à vérifier incorrectement la raison pour laquelle l'action de mise à jour n'a pas réussi (mise à jour)
L'histoire selon laquelle l'erreur de construction ne s'est pas arrêtée lors de l'utilisation d'Eclipse 2020
[Java] L'histoire selon laquelle le tableau attendu n'a pas été obtenu par la méthode String.split.
JSESSIONID n'a pas pu être attribué à l'URL lors de l'utilisation de Spring Security
Après avoir vérifié le problème de Montyhall avec Ruby, c'était une histoire que je pouvais bien comprendre et que je ne comprenais pas bien
[CentOS8] Puisque la commande javac n'a pas pu être utilisée, installez l'environnement de développement java.
Je ne savais pas que les classes internes pouvaient être définies dans l'interface [Java]
ValidationMessages.properties ne doit pas être multiple sur le chemin de classe
L'histoire que link_to est profonde (cause inconnue)
Une histoire sur la création d'un Builder qui hérite du Builder
L'histoire du port devenant inutilisable dans l'exemple de programme Spring Boot
[Spring Boot] L'histoire selon laquelle le bean de la classe avec l'annotation ConfigurationProperties n'a pas été trouvé