2016-11-30 6 views
-1

新しい更新を確認する方法は、プレイストアで利用できるかどうかです。これを得る簡単な方法はありますか?バックエンドサーバー/ Webサービスを使用せずにプレイストアでアプリケーションのバージョンを確認しますか?

制限。 1.カスタムWebサービスはありません。

  1. ユーザーエージェントを使用することができます。
  2. Googleが提供するすべてのAPI。

助けてください。

+0

使用firebaseコンソール –

+0

使用firebase remoteconfig。 https://firebase.google.com/remoteconfig – eriuzo

答えて

1

使用このヘルパーメソッドをPlayストアで

private String getPlayStoreVersion(){ 
    final String PLAY_STORE_URL = "https://play.google.com/store/apps/details?id=%s&hl=%s"; 
    final String PLAY_STORE_TAG_RELEASE = "itemprop=\"softwareVersion\">"; 
    String version = "0.0.0.0"; 

    Boolean isAvailable = false; 
    String source = ""; 
    OkHttpClient client = new OkHttpClient(); 
    String formedString = String.format(PLAY_STORE_URL,"com.demo.application.yourapp",Locale.getDefault().getLanguage()); 
    ResponseBody body = null; 
    try { 

     URL playStoreURL = new URL(formedString); 
     Request request = new Request.Builder().url(url).build(); 
     Response response = client.newCall(request).execute(); 
     body = response.body(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(body.byteStream(), "UTF-8")); 
     StringBuilder str = new StringBuilder(); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      if (line.contains(PLAY_STORE_TAG_RELEASE)) { 
       str.append(line); 
       isAvailable = true; 
       } 
     } 
     response.body().close(); 
     source = str.toString(); 

     if (isAvailable) { 
      String[] splitPlayStore = source.split(PLAY_STORE_TAG_RELEASE); 
      if (splitPlayStore.length > 1) { 
       splitPlayStore = splitPlayStore[1].split("(<)"); 
       version = splitPlayStore[0].trim(); 
      } 
     } 


     return version; 

    } catch(Exception e){ 
     e.printStackTrace(); 
    } 


    return version; 
} 

注意更新されたバージョンを見つけるために:バックグラウンドスレッドで使用

+0

すぐにご連絡を差し上げます。 thnx – young

1

をだから私は、私は問題の簡単な解決策があると思います。

依存が必要です。

compile 'org.jsoup:jsoup:1.7.3' 

サンプルコード

class GetVersionCode extends AsyncTask<Void, String, String> { 

    private static final String currentVersion = "x.x.xx"; 
    static final String packageName = "com.xxx.xxx"; 

    @Override 
    protected String doInBackground(Void... voids) { 

     String newVersion = null; 
     try { 
      newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + packageName + "&hl=it") 
        .timeout(30000) 
        .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 
        .referrer("http://www.google.com") 
        .get() 
        .select("div[itemprop=softwareVersion]") 
        .first() 
        .ownText(); 
      return newVersion; 
     } catch (Exception e) { 
      // HTTP error fetching URL, 404 
      return newVersion; 
     } 
    } 

    @Override 
    protected void onPostExecute(String onlineVersion) { 
     super.onPostExecute(onlineVersion); 

     if (null == onlineVersion) { 
      // Some error occurred 
      return; 
     } 

     if (onlineVersion.compareTo("") == 0) { 
      // Some error occurred 
      return; 
     } 

     Toast.makeText(getApplicationContext(), onlineVersion, Toast.LENGTH_SHORT).show(); 
    } 
} 
関連する問題