Je dois détecter que mon application est installée sur Google Play ou sur un autre marché, comment puis-je obtenir ces informations?
La classe PackageManager
fournit la méthode getInstallerPackageName qui vous indiquera le nom du package de tout ce qui a installé le package que vous spécifiez. Les applications chargées latéralement ne contiendront pas de valeur.
[~ # ~] éditez [~ # ~] : Notez @mttmllns ' réponse ci-dessous concernant l'App Store d'Amazon.
Et pour info apparemment la dernière version de la boutique Amazon définit enfin PackageManager.getInstallerPackageName()
à "com.Amazon.venezia"
aussi pour contraster avec le jeu de Google Play "com.Android.vending"
.
J'utilise ce code pour vérifier si une version a été téléchargée depuis un magasin ou téléchargée de façon latérale:
public static boolean isStoreVersion(Context context) {
boolean result = false;
try {
String installer = context.getPackageManager()
.getInstallerPackageName(context.getPackageName());
result = !TextUtils.isEmpty(installer);
} catch (Throwable e) {
}
return result;
}
Kotlin:
fun isStoreVersion(context: Context) =
try {
context.packageManager
.getInstallerPackageName(context.packageName)
.isEmpty()
} catch (e: Throwable) {
false
}
Si vous cherchez à identifier et à restreindre l'application à chargement latéral. Google a trouvé la solution pour identifier le problème.
Vous pouvez suivre comme ci-dessous
Projets build.gradle
:
buildscript {
dependencies {
classpath 'com.Android.tools.build:bundletool:0.9.0'
}
}
Module de l'application build.gradle
:
implementation 'com.google.Android.play:core:1.6.1'
Classe qui étend l'application:
public void onCreate() {
if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {
// Skip app initialization.
return;
}
super.onCreate();
.....
}
Avec cette intégration, google identifiera automatiquement s'il manque des apk séparés et affiche une fenêtre contextuelle indiquant " L'installation a échoué " et il redirige également vers le téléchargement sur Play Store écran où l'utilisateur peut installer correctement l'application via le Google Play Store.
Vérifiez ceci lien pour plus d'informations.
J'espère que cela t'aides.