--Wenn Sie die im internen Test erstellte apk auf dem tatsächlichen Computer installieren Es gab Zeiten, in denen der Dialog angezeigt wurde, und Zeiten, in denen er nicht angezeigt wurde.
MainActivity.java
public class MainActivit {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Variable zum Setzen einer http-Anfrage
Uri.Builder builder = new Uri.Builder();
AsyncHttpRequest task = new AsyncHttpRequest(this);
//Finden Sie die Version der App im Store heraus
task.execute(builder);
}
AsyncHttpRequest.java
//Asynchrone Kommunikationsklasse führt zu einem Fehler
public class AsyncHttpRequest extends AsyncTask<Uri.Builder, Void, String> {
/**
*Anruferaktivität
*/
private Activity mainActivity;
/**
*App-Version speichern
*/
private String newVersion;
/**
*Geteilte Ressourcen
*/
private SharedPreferences sharedPreferences;
public AsyncHttpRequest(Activity activity) {
//Anruferaktivität
this.mainActivity = activity;
}
@Override
protected String doInBackground(Uri.Builder... builder) {
//http Anfrage werfen Prozess
this.newVersion = "";
String lang = getLocaleLang();
try {
//Informationen zum Zeitpunkt der Kommunikation werden in einer konstanten Klasse zusammengefasst
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();
//Speichern Sie die Store-Version und verwenden Sie sie in Aktivität
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;
}
/**
*Methode zum Abrufen der Sprache des Terminals
*/
public String getLocaleLang() {
String localeLanguage = Locale.getDefault().getLanguage();
return localeLanguage;
}
}
PlayStoreConstants.java
/**
*Konstante Klasse der Playstore-Kommunikation
*/
public class PlayStoreConstants {
/**
*URL speichern
*/
public static final String STORE_BASE_URL = "https://play.google.com/store/apps/details?id=";
/**
*ID speichern
*/
//https://play.google.com/store/apps/details?id=Hoge Teil von Hoge
public static final String STORE_ID = "hoge";
/**
*URL des Bildschirms zum Speichern von Details
*/
public static final String STORE_DETAIL_URL = "market://details?id=";
/**
*Kommunikations-Timeout-Zeit speichern
*/
public static final int TIMEOUT = 30000;
/**
*Referrer-Header
* (Um HTTP 403-Fehler zu vermeiden)
*/
public static final String REFERRER = "http://www.google.com";
/**
*CSS-Abfrage
*/
public static final String CSS_QUERY = ".hAyfc .htlgb";
}
Recommended Posts