Devo rilevare che la mia applicazione è installata da Google Play o da altri mercati, come posso ottenere queste informazioni?Come sapere che un'applicazione è installata da google play o side-load?
risposta
La classe PackageManager
fornisce il metodo getInstallerPackageName che indica il nome del pacchetto di qualunque sia installato il pacchetto specificato. Le app caricate lateralmente non conterranno un valore.
MODIFICA: Nota @mttmllns 'answer below riguardante l'app store Amazon.
E FYI apparently l'ultima versione del negozio di Amazon, infine, imposta PackageManager.getInstallerPackageName()
-"com.amazon.venezia"
pure in contrasto con Google Play di "com.android.vending"
.
Impossibile creare un riferimento statico al metodo non statico getInstallerPackageName (String) dal tipo PackageManager –
Ogni app store ha la propria marketapp su Playstore che a sua volta installa i propri apk (pacchetti). Il packagemanager getInstaller ...() restituisce il nome del pacchetto del marketapp che ha installato un determinato apk. Per esempio. com.amazon.venezia è il nome del pacchetto del marketapp di Amazon. Abbastanza intelligente, perché poi PlayStore può controllare quali marketapp sono attendibili. Questo è progettato per prevenire alla fine TUTTI i sideload non attendibili. Notando che l'adozione di nuove versioni del sistema operativo Android sta diminuendo drasticamente. KitKat potrebbe diventare lo standard defacto. –
Io uso questo codice per controllare se una build è stato scaricato da un negozio o sideloaded:
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;
}
- 1. Elenco dei installata App da Google Play Contro account Google
- 2. Assicurati che l'applicazione Android sia stata installata da Play-Store
- 3. Come sapere se un'app è stata scaricata da Google Play o Amazon?
- 4. Come posso sapere quanta memoria è installata fisicamente in Windows?
- 5. Come sapere se un'applicazione iOS è stata appena installata o aggiornata?
- 6. Servizi Google Play: come gestire i dispositivi che non dispongono di Google Play?
- 7. Scarica l'app da Google Play programmaticamente
- 8. Android - Google Play che filtra xxhdpi
- 9. Google play search api o feed partner?
- 10. Come sapere se un'estensione di Chrome è installata da un utente reale da parte mia durante lo sviluppo?
- 11. Come sapere quando Big O è logaritmico?
- 12. Rileva se è stata scaricata un'app per Android da Google Play o Amazon vs Other
- 13. Come sapere che l'attività è stata completata?
- 14. Avvia l'app, se installata, oppure apri Google Play con il referrer di installazione
- 15. Come spuntare Abilita la richiesta Bluetooth da Google Play Services?
- 16. Come richiedere informazioni sull'app da Google Play Store senza autenticazione
- 17. Verifica se l'app Google Maps è installata su iOS 6
- 18. Impossibile determinare se il Play Store di Google è installato o meno sul dispositivo Android
- 19. App Python installata e ID client Google
- 20. DS.FixtureAdapter ha il supporto sideload?
- 21. Rileva un'applicazione installata o no?
- 22. qr reindirizzamento codice per google play su dispositivo o desktop
- 23. Scansione del Google Play Store
- 24. Come posso sapere se è stata caricata Google Visualization
- 25. Come riorganizzare le schermate su Google Play
- 26. google play geofence onHandleIntent
- 27. Come trovare l'ID app di Google Play?
- 28. Animazione di attività come Google Play Store
- 29. Come sapere che l'elemento di trascinamento è su quale elemento?
- 30. Come sapere se è installata la versione di debug di Flash?
Funziona molto bene. – ttom
@AbhishekB quale versione di Android sei? Sei in un emulatore? – MattC
@AbhishekB Non conosco un modo per trovare l'origine delle app con caricamento laterale. Non sono sicuro di come verrebbe tracciato anche dal momento che tecnicamente è solo un file APK che viene caricato sul dispositivo da qualche parte e quindi presumibilmente installato tramite PackageManager. – MattC