Hogyan ellenőrizhető a piaci jelenlét iránti kérelem, és mit nyújt ez az információ?
A PackageManager osztály meg tudja mondani a csomagot telepítő alkalmazás csomagnevét.
Ehhez a getPackageManager().getInstallerPackageName() metódust használjuk, amely egy karakterláncot ad vissza.
Például a Play Marketen található a com.google.market vagy com.google.market, az Amazon App Store-ban a com.amazon.venezia, a Samsung piacon pedig a com.sec.android.app.samsungapps.
De az F-Droid programjai nem rá mutatnak, hanem a com.google.android.packageinstallerre, mintha a felhasználó maga telepítette volna őket.
A telepítés forrásának és magának az alkalmazáscsomagnak a nevének ismeretében hozzáférhet az adott URL-ek piacaihoz. A program piaci jelenléte már némi önelégültségre ad okot, elvégre néha megtisztítják őket.
De ha az alkalmazást eltávolították a piacról, akkor ez komoly aggodalomra ad okot (természetesen eltávolíthatta volna valami ostobaság miatt, például valaki más szerzői jogainak megsértése miatt, de valószínűleg tényleg valamiről volt szó rossz).
Az alkalmazás URL-címének lekéréséhez a Play Marketen és az F-Droidon használja a karakterláncot
12 | String playStoreUrl = ”https://play.google.com/store/apps/details?id=” + packageName;String fdroidStoreUrl = ”https://www.f-droid.org/packages/” + packageName ; |
Hasonlóképpen ellenőrizheti más piacokat is. Egyszerű ellenőrző kód (csak a háttérben fut, mivel a hálózat használatos):
123456789101112131415161718 | private void checkPlayMarket(String playStoreUrl) { try { URL url = new URL(playStoreUrl); HttpURLConnection kapcsolat = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connect(); int kód = kapcsolat.getResponseCode(); if (kód == 200){ // A piacon elérhető} if (kód == 404){ // Nincs a piacon } connection.disconnect(); } catch (e. kivétel) { Log.e(”CheckStoreTask”, e.toString()); }} |