Ho app in Google Play, Amazon, Samsung Apps e ho intenzione di caricare su altri negozi. Non desidero compilare la compilazione separata per ogni negozio. C'è modo di rilevare quale app installata nel negozio se la stessa app è stata inviata a negozi diversi?In che modo l'app Android può rilevare quale store lo ha installato?
risposta
Dovrete espandere questa per ogni punto vendita aggiuntivo, ma questo dovrebbe iniziare
if (PackageManager.getInstallerPackageName().equals("com.android.vending")
{
//do google things
}
else if (PackageManager.getInstallerPackageName().equals("com.amazon.venezia")
{
//do amazon things
}
A meno che non si creino build separati. Ma con un buon setup/ant script maven è possibile automatizzare facilmente questo processo.
rilevo Installer come questo all'interno del 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
}
Ho testato questo in la mia ultima app e ha trasmesso l'app in googe play, negozio amazon e negozio slideme.org
Aggiornamento: aspetto s come a volte c'è il nome del pacchetto di installazione com.google.android.feedback che sembra essere correlato a Google Store, anche se ho visto nel mio test di Google Analytics che com.android.vending è di gran lunga più frequente. Quindi se vuoi renderlo ancora più preciso dovresti gestire anche questo pacchetto di installazione. Si noti inoltre che alcuni mercati (come slideme.org) semplicemente non sembrano impostare un id di installazione del pacchetto.
Consulta anche: Can PackageManager.getInstallerPackageName() tell me that my app was installed from Amazon app store?
- 1. Android build in store si comporta in modo diverso rispetto a apk installato tramite USB
- 2. evento sfocatura javascript: c'è un modo per rilevare quale elemento ha ora lo stato attivo?
- 3. In che modo il sito web di App Store sa se è installato iTunes?
- 4. In che modo boost :: variant store reference?
- 5. Approssimativamente, quale percentuale di utenti "normali" ha installato .NET 3.5?
- 6. In che modo uno script Ruby può rilevare che è in esecuzione in irb?
- 7. Windows 8.1: Vagrant non ha potuto rilevare VirtualBox! Assicurarsi che VirtualBox sia installato correttamente
- 8. modo indipendente dalla piattaforma di rilevare se è installato git
- 9. Modo corretto per rilevare se SQLCMD.exe è installato?
- 10. Determinare il percorso che un pacchetto yum ha installato su
- 11. può rilevare in modo affidabile la chiusura/disconnessione del canale?
- 12. Come rilevare lo store iTunes attivo su iPhone/iPod Touch/iPad?
- 13. Come può rilevare un driver di dispositivo di carattere Linux quando un programma che lo utilizza esce in modo anomalo?
- 14. Visual Studio può dirmi quale riferimento ha generato una NullReferenceException?
- 15. Driver PCIe - In che modo lo spazio utente lo accede?
- 16. In che modo Intent può essere nullo in onHandleIntent()?
- 17. Come può il mio test dell'interfaccia utente XCode rilevare che lo schermo è cambiato?
- 18. In che modo workflowy ha implementato la modifica in linea?
- 19. Come rilevare quale app è aperta su Android
- 20. Come eseguire lo script python installato?
- 21. In che modo std :: unique_ptr non ha overhead di dimensioni?
- 22. Come può la mia app Android rilevare una chiamata interrotta?
- 23. C'è qualche IDE che ha suggerimenti sul codice per CakePHP o un pacchetto di suggerimenti sul codice che può essere installato in qualche modo?
- 24. quale di questi compilatori ha un bug, secondo lo standard?
- 25. Impossibile determinare se il Play Store di Google è installato o meno sul dispositivo Android
- 26. Rileva certificato installato nel mio dispositivo Android
- 27. Quale supporto per lo streaming live ha l'elemento video HTML5?
- 28. In che modo SystemClock.uptimeMillis() può mai essere completato?
- 29. È possibile rilevare se un telefono Android ha una trackball?
- 30. GWT: in che modo il client può rilevare che il javascript non è sincronizzato se il server viene aggiornato
non ho trovato questo per essere affidabile in passato. Ho sperimentato l'invio di getInstallerPackageName durante l'installazione sul mio server web con un'app popolare caricata su 6 mercati e il 41% non era nemmeno impostata – jamesc