Wie kann ich wissen, ob eine App von Google Play oder Amazon heruntergeladen wurde?

Gibt es eine Möglichkeit zu wissen, ob eine Anwendung von Amazon oder Google Play heruntergeladen wurde? Ich meinte natürlich in der App selbst.

Ich habe eine App auf beide Seiten implementiert und ich mag es gern, von wo aus der Kunde es in der Anwendung heruntergeladen hat. Ich weiß, ich kann verschiedene Anwendungen für jeden Dienst zu implementieren, aber diese Anzeigen einige Wartungsarbeiten, die vermieden werden könnten, wenn es einige Art und Weise zu lösen, nur mit einer Bedingung innerhalb der App mit dem gleichen Paket.

  • Unterstützung von Amazon und Android-Markt (Google Play) Links in der Anwendung
  • Wie lange für eine App für Amazon AppStore zugelassen werden?
  • Einreichung von Apps auf Android Market und Amazon Appstore
  • Kann ich AdMob in Android Apps verwenden, die auf Amazon Appstore veröffentlicht wurden?
  • Amazon Mobile-Anzeigen funktionieren nicht
  • Amazon App Store und Android Lizenzierung LVL
  • Unterschied zwischen Zieh- und Zieh-Mdpi
  • So stellen Sie layout_alignParentRight = "false" programmgesteuert ein?
  • Android - Verhindern Sie weißen Bildschirm beim Start
  • Berechtigung wird nur der System App in Manifest gewährt
  • Bild in Emulator-Galerie hochladen
  • So entfernen Sie den Fokus aus dem einzigen editText
  • 2 Solutions collect form web for “Wie kann ich wissen, ob eine App von Google Play oder Amazon heruntergeladen wurde?”

    In Code:

     final PackageManager packageManager = getPackageManager(); try { final ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getPackageName(), 0); if ("com.android.vending".equals(packageManager.getInstallerPackageName(applicationInfo.packageName))) { // App was installed by Play Store } } catch (final NameNotFoundException e) { e.printStackTrace(); } 

    "Com.android.vending" sagt dir, dass es aus dem Google Play Store kam. Ich bin mir nicht sicher, was der Amazon Appstore ist, aber es sollte einfach sein, mit dem obigen Code zu testen.

    Über ADB:

     adb shell pm dump "PACKAGE_NAME" | grep "vending" 

    Beispiel:

     adb shell pm dump "com.android.chrome" | grep "vending" installerPackageName=com.android.vending 

    Während in den meisten Fällen können Sie den Laden Namen, indem Sie einen ähnlichen Check:

     final PackageManager packageManager = getPackageManager(); try { final ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getPackageName(), 0); if ("com.android.vending".equals(packageManager.getInstallerPackageName(applicationInfo.packageName))) { // App was installed by Play Store } else if ("com.amazon.venezia".equals(packageManager.getInstallerPackageName(applicationInfo.packageName))) { // App was installed by Amazon Appstore } else { // App was installed from somewhere else } } catch (final NameNotFoundException e) { e.printStackTrace(); } 

    "Com.android.vending" ist Google Play Store und
    "Com.amazon.venezia" ist der Amazonas-Appstore und
    Null wenn es sideloaded war

    Die Ergebnisse könnten jedoch unzuverlässig sein, wie zum Beispiel bei Beta-Tests ein Laden nicht diesen Wert setzen kann, und außerdem ist es möglich, Ihre App anzugeben, die den Paketnamen des Installateurs angibt, der als Store-Name interpretiert werden könnte:

     adb install -i <INSTALLER_PACKAGE_NAME> <PATH_TO_YOUR_APK> 

    Vielleicht möchten Sie mit anderen Paketnamen für verschiedene Läden, zum Beispiel "com.example.yourapp" für Google und "com.example.yourapp.amazon" für Amazon – Sie können ganz einfach die in Ihrem Gradle-Skript.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.