--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.
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