2011-11-29 25 views

Respuesta

42

Puede leer android.os.Build.MANUFACTURER y android.os.Build.MODEL. En una primera generación de Kindle Fire son 'Amazon' y 'Kindle Fire', respectivamente. Para ver los códigos de modelo de los dispositivos Kindle Fire más recientes, consulte Device and Feature Specifications en el sitio para desarrolladores de Amazon.

+0

también echa un vistazo https://stackoverflow.com/questions/19592927/is-it-possible-to-reliably-detect-at- runtime-which-store-installed-an-android-ap/19643816 # 19643816 para ver si el apk se instaló desde la tienda de Amazon – Offbeatmammal

36

basa en la Kindle Fire Device and Feature Specifications oficial Actualmente utilizo este código:

public static boolean isKindleFire() { 
    return android.os.Build.MANUFACTURER.equals("Amazon") 
      && (android.os.Build.MODEL.equals("Kindle Fire") 
       || android.os.Build.MODEL.startsWith("KF")); 
} 
+2

Entonces, acaba de rechazar una aplicación de Amazon porque estaba iniciando la tienda de aplicaciones de Google, dependiendo de esto prueba. Lamentablemente, no tengo los valores erróneos de 'Build. *', Pero volví a enviarlos con 'equalsIgnoreCase' en lugar de' equals' para las dos primeras partes de la expresión y se volvió a enviar. Entonces eso puede ser ahora necesario. – nmr

+0

@nmr - equalsIgnoreCase probablemente no duele, pero no estoy convencido. ¿Tal vez realizaron una prueba en un dispositivo que no sea Kindle Fire? AFAIK puedes instalar su App Store en casi cualquier dispositivo Android. Creo que deberías comprobar si Google Play está disponible además (o en lugar de) esta prueba. – devconsole

+0

Sí, quién sabe, Amazon no es exactamente un actor perfecto, es posible que hayan probado en un Kindle que no sea Kindle, aunque estoy relativamente seguro de que explícitamente prohibí la distribución en ellos. Realmente debería hacerlo de la manera que describes, pero la forma en que se escribe el código requerirá alguna reorganización para respaldar eso. – nmr

Cuestiones relacionadas