Як перевірити додаток на присутність в маркетах і що дає ця інформація?
Клас 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 використовуй рядка
12 | <span class=”typ”>String</span><span class=”pln”> playStoreUrl </span><span class=”каламбур”>=</span> <span class=”str”>”https://play.google.com/store/apps/details?id=”</span> <span class=”каламбур”>+</span><span class=”pln”> packageName</span><span class=”каламбур”>;</span><span class=”typ”>String</span><span class=”pln”> fdroidStoreUrl </span><span class=”каламбур”>=</span> <span class=”str”>”https://www.f-droid.org/packages/”</span> <span class=”каламбур”>+</span><span class=”pln”> packageName</span><span class=”каламбур”>;</span> |
Аналогічно можна перевіряти і інші маркети. Код простої перевірки (запускай тільки в фонових потоках, так як використовується мережа):
123456789101112131415161718 | <span class=”kwd”>private</span> <span class=”kwd”>void</span><span class=”pln”> checkPlayMarket</span><span class=”каламбур”>(</span><span class=”typ”>String</span><span class=”pln”> playStoreUrl</span><span class=”каламбур”>)</span> <span class=”каламбур”>{</span> <span class=”kwd”>try</span> <span class=”каламбур”>{</span><span class=”pln”> URL url </span><span class=”каламбур”>=</span> <span class=”kwd”>new</span><span class=”pln”> URL</span><span class=”каламбур”>(</span><span class=”pln”>playStoreUrl</span><span class=”каламбур”>);</span> <span class=”typ”>HttpURLConnection</span><span class=”pln”> connection </span><span class=”каламбур”>=</span> <span class=”каламбур”>(</span><span class=”typ”>HttpURLConnection</span><span class=”каламбур”>)</span><span class=”pln”> url</span><span class=”каламбур”>.</span><span class=”pln”>openConnection</span><span class=”каламбур”>();</span><span class=”pln”> connection</span><span class=”каламбур”>.</span><span class=”pln”>setRequestMethod</span><span class=”каламбур”>(</span><span class=”str”>”GET”</span><span class=”каламбур”>);</span><span class=”pln”> connection</span><span class=”каламбур”>.</span><span class=”pln”>connect</span><span class=”каламбур”>();</span> <span class=”kwd”>int</span><span class=”pln”> code </span><span class=”каламбур”>=</span><span class=”pln”> connection</span><span class=”каламбур”>.</span><span class=”pln”>getResponseCode</span><span class=”каламбур”>();</span> <span class=”kwd”>if</span> <span class=”каламбур”>(</span><span class=”pln”>code </span><span class=”каламбур”>==</span> <span class=”lit”>200</span><span class=”каламбур”>){</span> <span class=”com”>// Є в маркеті</span> <span class=”каламбур”>}</span> <span class=”kwd”>if</span> <span class=”каламбур”>(</span><span class=”pln”>code </span><span class=”каламбур”>==</span> <span class=”lit”>404</span><span class=”каламбур”>){</span> <span class=”com”>// Немає в маркеті</span> <span class=”каламбур”>}</span><span class=”pln”> connection</span><span class=”каламбур”>.</span><span class=”pln”>disconnect</span><span class=”каламбур”>();</span> <span class=”каламбур”>}</span> <span class=”kwd”>catch</span> <span class=”каламбур”>(</span><span class=”typ”>Exception</span><span class=”pln”> e</span><span class=”каламбур”>)</span> <span class=”каламбур”>{</span> <span class=”typ”>Log</span><span class=”каламбур”>.</span><span class=”pln”>e</span><span class=”каламбур”>(</span><span class=”str”>”CheckStoreTask”</span><span class=”каламбур”>,</span><span class=”pln”> e</span><span class=”каламбур”>.</span><span class=”pln”>toString</span><span class=”каламбур”>());</span> <span class=”каламбур”>}</span><span class=”каламбур”>}</span> |