Четверг , Ноябрь 16 2017
Главная / Кодинг / Как проверить приложение на присутствие в маркетах?

Как проверить приложение на присутствие в маркетах?

Как проверить приложение на присутствие в маркетах и что дает эта информация?

Класс PackageManager может сказать нам имя пакета приложения, установившего пакет.

Для этого используется метод getPackageManager().getInstallerPackageName(), который вернет строку.

Например, Play Маркет имеет com.google.market или com.google.market, Amazon App Store — com.amazon.venezia, маркет от Samsung — com.sec.android.app.samsungapps.

А вот приложения с F-Droid указывают не на него, а на com.google.android.packageinstaller, как будто бы их установил сам пользователь.

Зная источник установки и имя пакета самого приложения, можно постучаться в маркеты по конкретным URL. Наличие программы в маркете — уже некоторый повод для самоуспокоения, все-таки их иногда чистят.

А вот если приложение было из маркета удалено, то это серьезный сигнал для беспокойства (его, конечно, могли удалить из-за какой-нибудь чепухи, вроде нарушения чужих авторских прав, но, скорее всего, это было что-то реально нехорошее).

Для получения URL приложения в Play Маркет и F-Droid используй строчки

String playStoreUrl = "https://play.google.com/store/apps/details?id=" + packageName;
String fdroidStoreUrl = "https://www.f-droid.org/packages/" + packageName;

Аналогично можно проверять и остальные маркеты. Код простой проверки (запускай только в фоновых потоках, так как используется сеть):

private void checkPlayMarket(String playStoreUrl) {
  try {
    URL url = new URL(playStoreUrl);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.connect();
    int code = connection.getResponseCode();
    if (code == 200){
      // Есть в маркете
    }
    if (code == 404){
      // Нет в маркете
    }
    connection.disconnect();
  } catch (Exception e) {
    Log.e("CheckStoreTask", e.toString());
  }
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *