2013-07-13 8 views
9

Ich habe App in Google Play, Amazon, Samsung Apps und ich plane, in andere Geschäfte zu laden. Ich möchte keinen separaten Build für jedes Geschäft kompilieren. Gibt es eine Möglichkeit zu erkennen, welche Store App installiert ist, wenn dieselbe App an verschiedene Stores gesendet wurde?Wie Android-App erkennen kann, welcher Speicher es installiert?

Antwort

15

Sie werden diese für jeden zusätzlichen Speicher zu erweitern, aber diese sollten Sie

Einstieg
if (PackageManager.getInstallerPackageName().equals("com.android.vending") 
{ 
//do google things 
} 
else if (PackageManager.getInstallerPackageName().equals("com.amazon.venezia") 
{ 
//do amazon things 
} 
+4

Ich habe dies in der Vergangenheit zuverlässig sein nicht gefunden. Ich experimentierte mit dem Senden der getInstallerPackageName bei der Installation auf meinem Webserver mit einer beliebten App auf 6 Marktplätzen hochgeladen und 41% waren nicht einmal festgelegt – jamesc

3

Nicht, es sei denn, Sie machen separate Builds. Aber mit einem guten Maven Setup/Ant Script können Sie diesen Prozess einfach automatisieren.

9

ich erkennen Installer wie dies in der MainActivity:

//is installed via amazon, google? 
String installerId = null; 
try { 
    installerId = this.getPackageManager().getInstallerPackageName(this.getPackageName()); 
} catch (Exception e) { 
    //just in case... 
} 

if ("com.amazon.venezia".equals(installerId)) { 
    // amazon 
} else if ("com.android.vending".equals(installerId)) { 
    // google 
} else { 
    // others & unknown ones 
} 

ich diese getestet haben in meine letzte App und es App übermittelte Anmeldung in Googe spielen, Amazon Store und slidem.org Shop

Update: schauen s wie manchmal gibt es das Installationspaket Name com.google.android.feedback, die mit Google Store als auch verwandt zu sein scheint, obwohl ich in meiner Test-App Google Analytics gesehen habe, dass com.android.vending ist bei weitem häufiger. Wenn Sie dies noch genauer machen möchten, sollten Sie auch dieses Installationspaket behandeln. Beachten Sie auch, dass einige Märkte (wie slideme.org) einfach keine Paketinstallation-ID festlegen.

Siehe auch: Can PackageManager.getInstallerPackageName() tell me that my app was installed from Amazon app store?

Verwandte Themen