В фоновом режиме проверьте Play Store, чтобы определить, доступно ли приложение для загрузки на устройство

Я знаю, что могу подключиться к Play Маркету с URL-адресом:

market://details?id=com.example.appname 

Что бы я хотел сделать, это «ping» этот URL-адрес в фоновом режиме и определить, действительно ли приложение доступно, тогда я могу изменить свой интерфейс.

Предположим, что если приложение недоступно, страница под http://play.google.com/store/apps/details?id=<package_name> содержит, например, словосочетание. Если приложение доступно, оно не содержит этого слова.

Сделайте HTTP GET для этого URL-адреса и найдите error-section .

  • Нет error-section – доступно ваше приложение.
  • В противном случае он недоступен.

Как это:

 final HttpClient client = new DefaultHttpClient(); final String getURL = "http://play.google.com/store/apps/details?id=<package_name>"; final HttpGet get = new HttpGet(getURL); final HttpResponse responseGet = client.execute(get); final HttpEntity resEntityGet = responseGet.getEntity(); if (resEntityGet != null) { final String response = EntityUtils.toString(resEntityGet); if (response.indexOf("error-section") == -1) { // available } else { // unavailable } } 
 private class URLTest extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... params) { try { try { HttpClient httpclient = new DefaultHttpClient(); String strurl = "https://play.google.com/store/apps/details?id=com.rovio.angrybirdsstarwars.ads.iap"; // String strurl = // "https://play.google.com/store/apps/details?id=com.rovio.angrybirdsstarwars.ads.iaptest"; // //fake packagename append with "test" HttpGet httpget = new HttpGet(strurl); HttpResponse httpresp = httpclient.execute(httpget); if (httpresp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { Log.e("Found", "YES"); } else if (httpresp.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_FOUND) { Log.e("Found", "NO"); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (Exception e) { Log.e("", ""); } return null; } } 

Я попытался с правильными и поддельными пакетами, и это дало плохую просьбу о запросе, если приложение не доступно и положительно (код успеха 200), если приложение есть .. так что PLZ проверить его, как только он может помочь.

Android 2.2 & app min req 2.3

Правильный результат успеха ответа 200 200 200Поддельный url. URL-адрес приложения, доступный в магазине воспроизведения. Результат сбоя 404