2011-09-22 12 views
8

AndroidアプリのID /パッケージ名を指定すると、アプリがAndroidマーケットで利用可能かどうかをプログラムで確認できますか?例えばアプリがAndroidマーケットで利用可能かどうかを確認

com.rovio.angrybirdsはcom.random.app.ibuiltとして、私は、このチェックは、Androidアプリケーションからか、のいずれかから実行された上で計画しています

ない場合、提供されていますJavaサーブレット

は、

PSありがとう:私はhttp://code.google.com/p/android-market-api/で見ていたが、私は

+0

Googleマーケットとのライセンス契約の細かいところをお読みください。これは違反の可能性があります。 – JPM

答えて

5

をチェックする任意の簡単な方法があった場合は、アプリの詳細ページを開こうとする可能性が思っていた - https://market.android.com/details?id=com.rovio.angrybirds

enter image description here

それはおそらく理想的ではないのですが、あなたはアプリが存在しないことを決定するために返されたHTMLを解析することができるはずです:アプリdoesn'tが存在する場合は

、あなたはこれを取得します。

+1

うまくいけば、これは実際に404ページであり、解析は不要で、ヘッダーをチェックするだけです。チェックしていない:) – Jay

+0

残念ながら、私は確信していないが、HTMLは合理的にうまく構成されているように見えるので、構文解析は比較的簡単になるはずです。もちろん予告なしに変更されることがあります。 – RivieraKid

+1

@Jay - はい、それは404ページだと思われます。ありがとう – Ares

2

AndroidアプリケーションのID /パッケージ名を指定すると、アプリケーションがAndroidマーケットで利用可能かどうかをプログラムで確認できますか?

これを行うための文書化された方法はありません。

2

@ RivieeaKidによるhtml解析ソリューションが機能する中で、これはより耐久性が高く、正しいソリューションかもしれないことがわかりました。リダイレクトを避けるには、「https」プレフィックス(プレーンな「http」ではなく)を使用してください。

/** 
* Checks if an app with the specified package name is available on Google Play. 
* Must be invoked from a separate thread in Android. 
* 
* @param packageName the name of package, e.g. "com.domain.random_app" 
* @return {@code true} if available, {@code false} otherwise 
* @throws IOException if a network exception occurs 
*/ 
private boolean availableOnGooglePlay(final String packageName) 
     throws IOException 
{ 
    final URL url = new URL("https://play.google.com/store/apps/details?id=" + packageName); 
    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
    httpURLConnection.setRequestMethod("GET"); 
    httpURLConnection.connect(); 
    final int responseCode = httpURLConnection.getResponseCode(); 
    Log.d(TAG, "responseCode for " + packageName + ": " + responseCode); 
    if(responseCode == HttpURLConnection.HTTP_OK) // code 200 
    { 
     return true; 
    } 
    else // this will be HttpURLConnection.HTTP_NOT_FOUND or code 404 if the package is not found 
    { 
     return false; 
    } 
} 
関連する問題