私はあなたが探しているのと同じ機能を使用しています。MainActivity の OnCreate で networkUpdate() を呼び出しました。
- この関数は、別のスレッドを作成し、最新のバージョン番号をオンラインで取得します。
- このバイナリのバージョン番号を取得する
- トーストにカスタム メッセージを表示する (新しいバージョンのリマインダー)
オンライン テキスト ファイル
{"version":"1.2","message":"News version of XXX is available. Please download at Google Play"}
アンドロイドのソースコード
private Handler m_handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
...............
m_handler = new Handler(); //for main thread
networkUpdate();
}
private void networkUpdate(){
Thread t = new Thread(new Runnable() {
@Override
public void run() { //heavy loading
ObjectMapper mapper = new ObjectMapper();
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(
"http://xxx/version.txt");
HttpResponse response = client.execute(request);
String retSrc = EntityUtils.toString(response.getEntity());
JsonNode networkJson = mapper.readTree(retSrc);
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;
String networkVersion = networkJson.path("version").textValue();
if(Float.valueOf(version) < Float.valueOf(networkVersion)){
m_updateMessage = networkJson.path("message").textValue();
}
System.out.println(version + "v "+ networkVersion + " m " +networkJson.path("message").textValue());
} catch (Exception e) {
Log.e("network update", "read version json", e);
}
m_handler.post(new Runnable() {
public void run() { //main thread
if(m_updateMessage != null){
Toast.makeText(MainActivity.this, m_updateMessage, Toast.LENGTH_LONG).show();
}
} }); } }); t.start();
}