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.

  • Fragen zur Vorbereitung eines Apks für den Amazon Android App Store
  • Erkennen Sie, ob eine Android-App von Google Play vs Amazon vs heruntergeladen wurde
  • Amazon App Store und Android Lizenzierung LVL
  • Amazon Marketplace App für die Eclipse-Einstellungsdatei abgelehnt
  • Tracking Android installieren Referrer mit Amazon Appstore
  • Verwalten Sie Code / Build für Android App-Shops (Google / Amazon / etc)?
  • So erstellen Sie animierte Hintergrund-Gradienten wie Instagram App?
  • Cordova Manifest Fusion gescheitert
  • ViewPager Fragmente - Shared Element Übergänge
  • Android: Video-Ansicht: wie man ein Video auf einer Schleife spielt
  • Code Pfad pro Geschmack in Android Gradle
  • Wie append date auf versionNameSuffix auf gradle aufbaut
  • 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.