He buscado por todas partes. Estamos usando un Motorola Zoom para probar nuestra tablet sitio de pruebas.
El problema es que el Android Useragent es un general Useragent y no hay ninguna diferencia entre un tablet Android y móviles Android. No quiero más que un blanco de un dispositivo específico como el Xoom Useragent desde Android más probable es que sea en múltiples dispositivos tablet en el futuro cercano.

Estamos utilizando Umbraco CMS, y hemos visto el uso de la 51Degrees.mobi solución, y en este momento esto no va a funcionar para nuestras necesidades. Tal vez en el futuro. Sé 51Degrees y algunas de las personas en Umbraco vamos a estar haciendo algunos de integración en Umbraco, pero el proyecto final será probablemente de no ser por un par de meses.

Por lo tanto, ¿por qué le gustaría para detectar la Cadena de agente de usuario de una tableta de Android y no directamente a nuestro sitio móvil, como se hace actualmente.

Si alguien sabe cómo detectar y Tablet Android en general, no el dispositivo específico que le sería muy útil.

  • Sólo estoy adivinando, pero tal vez hay una manera de ver cómo la alta resolución de visualización es así?
  • Sí, estamos tratando de usar Javascript para enviar un valor res de vuelta al servidor. Estamos tratando de que para nosotros es un __doPostBack pero que parece no ser el envío de nuestro valor. Tenemos una ocultos valor de entrada, se muestra el lado del cliente, pero no estamos obteniendo de nuevo el lado del servidor.
  • No estoy seguro si me pueden ayudar en este tema.
InformationsquelleAutor ClosDesign | 2011-03-17

15 Comentarios

  1. 111

    El problema es que el Usuario de Android-Agente general, Agente de Usuario, y no hay ninguna diferencia entre un tablet Android y móviles Android.

    Esto es incorrecto. Móvil Android tiene «Móvil» de la cadena en el encabezado de Agente de Usuario. Tablet Android no.

    Pero vale la pena mencionar que hay muy pocas tabletas que el informe «Mobile» Safari en el userAgent y el último no es la única/forma sólida para diferenciar entre Móvil y Tablet.

    • estás en lo correcto. Yo estaba buscando una cadena que contiene Android. Tenía que buscar la cadena que contiene y Android !móvil. El artículo por Tim Bray acerca de esto.
    • Wurfl todavía tiene ‘móvil’ como parte de Xoom del agente de usuario: tera-wurfl.com/explore/…
    • Que parece que han corregido con el XOOM de la actualización de Android 3.1. Tengo una XOOM y sólo probado — no «móvil».
    • gracias por la confirmación de que!
    • Esta respuesta no es totalmente correcta. Hay bastante un par de tabletas – incluso el nuevo Kindle Fire – que el informe «Mobile» de Safari en la cadena userAgent. No parece ser una manera sólida de la detección de la tablet vs teléfono en este punto, a menos que sea una combinación de userAgent y apoyo para la resolución de detección.
    • También vale la pena mirar: developers.google.com/chrome/mobile/docs/user-agent
    • falso! samsung galaxy tab es obvio tableta, pero se ha «móvil» en su agente de usuario
    • Creo que el «móvil», además fue con Android 4, todavía hay un montón de dispositivos de pre-4… Para android 2.x supongo teléfono, por 3.x supongo tablet (aunque habrá un par de falsos positivos)… de lo contrario usted puede probar para móvil…
    • Yo tenía el mismo problema, la tablet android estaba siendo dirigido a los teléfonos móviles de sitios web en lugar de sitios web completos. La mayoría de los sitios web eran el tratamiento de la tableta android dispositivos, como el teléfono android y exhibían el sitio web para móviles en lugar de sitio web completo. Yo tenía un hack, aunque no estoy satisfecho con este hack pero no es mi trabajo y conseguir el resultado esperado. Tuve que usar el iPad como agente de «Mozilla/5.0 (iPad; CPU OS 6_0 como Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/Mobile 6.0/10A5355d Safari/8536.25» . Si alguien tiene una mejor solución, por favor proporcione.
    • ver en el galaxy tab 2 , he intentado utilizar el useragent pero el encabezado de Agente de usuario tiene un Móvil de la cadena en la tablet
    • gracias. Sin ti yo no tendría este aviso.

  2. 20

    @Carlos:
    En su artículo de Tim Bray recomienda este (al igual que otro post by Google), pero, por desgracia, no está siendo aplicada por todos los fabricantes de tablet.

    … Recomendamos que fabrica gran factor de forma de los dispositivos de quitar el «Móvil» de la Agente de Usuario…

    La mayoría de los tablet Android cadenas de agente de usuario que he visto el uso de mobile safari, por ejemplo, el Samsung Galaxy Tab:

    Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Construir/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

    Así que en el momento estoy comprobando en los nombres de dispositivo para detectar las tabletas de Android. Como hay pocos modelos en el mercado, que está bien, pero pronto esto va a ser un feo solución.

    Al menos en el caso de la XOOM, la parte móvil parece haber desaparecido:

    Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Construir/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

    Pero como actualmente sólo hay tabletas con Andorid 3.x, la comprobación de Android 3 sería suficiente.

    • podría publicar la lista de dispositivos que se comprueba en contra y la codificación.
  3. 12

    Mo’ mejor también detectar «móvil» de agente de usuario

    Mientras que usted puede desear para detectar «android» en el Agente de Usuario para
    implementar Android-características específicas, tales como la pantalla táctil
    optimizaciones, nuestro principal mensaje es: en caso de que su sitio móvil depende de
    UA oler, por favor detectar las cadenas «móvil» y «android», en lugar
    que la de «android» en el Agente de Usuario. Esto ayuda a atender adecuadamente a ambos
    tu móvil y tablet visitantes.

    La detección de un dispositivo Android a través del Navegador

     < script language="javascript"> <!--
         var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
                  if (mobile) {
                      alert("MOBILE DEVICE DETECTED");
                      document.write("<b>----------------------------------------<br>")
                      document.write("<b>" + navigator.userAgent + "<br>")
                      document.write("<b>----------------------------------------<br>")
                      var userAgent = navigator.userAgent.toLowerCase();
                      if ((userAgent.search("android") > -1) && (userAgent.search("mobile") > -1))
                             document.write("<b> ANDROID MOBILE <br>")
                       else if ((userAgent.search("android") > -1) && !(userAgent.search("mobile") > -1))
                           document.write("<b> ANDROID TABLET <br>")
                  }
                  else
                      alert("NO MOBILE DEVICE DETECTED"); //--> </script>
    • Esto funciona perfectamente. He añadido en este para el iPad y el iPhone/iPod. else if (userAgent.search("ipad") > -1) document.write("<b> iPad <br>") else if ((userAgent.search("iphone") > -1)||(userAgent.search("ipod") > -1)) document.write("<b> iPhone or iPod <br>")
    • ¿Cómo funciona para mozilla/5.0 (linux; u; android 2.2; en-gb; gt-p1000 construir/froyo) applewebkit/533.1 (khtml, like gecko) version/4.0 mobile safari/533.1 que tiene la palabra «móvil» en el Samsung Galaxy Tablet?
  4. 8

    Usted puede probar este script, ya que usted no quiere a la meta de la Xoom solo. No tengo una Xoom, pero debería funcionar.

    function mobile_detect(mobile,tablet,mobile_redirect,tablet_redirect,debug) {
    var ismobile = (/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i.test(navigator.userAgent.toLowerCase()));
    var istablet = (/ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase()));
    
    if (debug == true) {
        alert(navigator.userAgent);
    }
    
    if (ismobile && mobile==true) {
        if (debug == true) {
            alert("Mobile Browser");
        }
        window.location = mobile_redirect;
    } else if (istablet && tablet==true) {
        if (debug == true) {
            alert("Tablet Browser");
        }
        window.location = tablet_redirect;
    }
    }

    He creado un proyecto en github. Check it out – https://github.com/codefuze/js-mobile-tablet-redirect. Siéntase libre de presentar problemas si no es nada malo!

    • Esto no funciona para versiones de Android > 3.0, tales como ICS (4.0). Creo que el aceptado respuesta es la correcta, compruebe si «Mobile Safari» es en el useragent.
    • No estoy seguro acerca de otros Enciende, pero el Kindle Fire 1 NO tiene ‘kindle’ en su cadena de agente de usuario – tampoco contiene ‘android’; las únicas pistas son las palabras ‘Seda’ y ‘Seda Acelerado’.
  5. 6

    Una vez que se han detectado Android en el agente de usuario, esta es la forma en que puedo diferenciar entre un tablet y un smartphone de los navegadores (esto es usando Python, pero es igualmente simple para otros lenguajes de programación):

    if ("Android" in agent):
      if ("Mobile" in agent):
        deviceType = "Phone"
      else:
        deviceType = "Tablet"

    ACTUALIZADO: para reflejar el uso de Chrome en Android, como por los comentarios de abajo.

    • ¿Por qué no sólo tiene que buscar «Móvil» en el agente?
    • Creo que podría funcionar tan bien, pero creo que puede ser peligroso para la búsqueda para «Móvil» – no podía ser de dispositivos con los nombres de, digamos, «HTC Móviles», etc. Creo que este es el enfoque recomendado.
    • Ahora que Google lanzó Chrome para Android, su enfoque puede ser que consiga un poco problemático. Porque, Chrome en Android se informe a sí mismo como «Chrome Mobile» en lugar de la habitual «Mobile Safari» como el stock de Android navegador está haciendo. Para algunas recomendaciones oficiales: developers.google.com/chrome/mobile/docs/user-agent
    • Excelente punto!
  6. 3

    Basada en Agentes de las cadenas en este sitio:

    http://www.webapps-online.com/online-tools/user-agent-strings

    Este resultado llegaron hasta:

    Primero:

    Todos los Dispositivos de Tableta tiene:

    1. Tablet

    2. iPad

    Segundo:

    Todos los Dispositivos de Teléfono tiene:

    1. Móvil

    2. Teléfono

    Tercero:

    De la tableta y el Teléfono dispone de Dispositivos:

    1. Android

    Si se puede detectar el nivel por nivel, pienso que el resultado es de 90 por ciento cierto. Como SharePoint Canales De Dispositivo.

  7. 2

    Aquí es lo que yo uso:

    public static boolean onTablet()
        {
        int intScreenSize = getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
    
        return (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE) //LARGE
        || (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE + 1); //Configuration.SCREENLAYOUT_SIZE_XLARGE
        }
    • Oups, acabo de notar que no se busca en el código java.
  8. 2

    Si bien no podemos decir si algunas tabletas omitir «móvil», muchos, incluyendo el Samsung Galaxy Tab hacer móvil en su agente de usuario, lo que hace imposible detectar entre un androide de la tableta y el teléfono android sin tener que recurrir a la comprobación de modelo de detalles. Esto en mi humilde opinión es una pérdida de tiempo, a menos que usted planea en la actualización y ampliación de su lista de dispositivos sobre una base mensual.

    Por desgracia, la mejor solución es para reclamar a Google acerca de esto y llegar a solucionar Chrome para Android por lo que agrega un poco de texto para identificar entre un dispositivo móvil y una tableta. Infierno, incluso una sola letra M O T en un lugar específico en la cadena sería suficiente, pero supongo que hace mucho sentido.

  9. 1

    Xoom tiene la palabra Xoom en el user-agent: Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; Xoom Construir/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

    Galaxy Tab tiene «Móvil» en el user-agent: Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Construir/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

    Así, es fácil detectar la Xoom, difícil de detectar si una determinada versión de Android es móvil o no.

  10. 1

    Más modernas tabletas de ejecución de nido de abeja aka 3.x
    Ninguno de los teléfonos de ejecución 3.x por defecto.
    La mayoría de las tablets que funcionan actualmente 2.x tienen menos capacidad y podría ser mejor, cuando se presenta con un sitio móvil de todos modos.
    Sé que no es perfecto.. pero supongo que lo ‘s mucho más precisa que la ausencia de móvil..

    • En realidad, los teléfonos no puede incluso ejecutar 3.x porque era una tablet-sólo versión de Android y no era de código abierto.
  11. 1

    Móvil Android puede tener «móvil» en el que la cadena de agente de usuario, lo que si usa el Opera Mobile para Android en una Tablet? Él todavía tiene el «móvil» en el que la cadena de agente de usuario, pero se debe mostrar la Tableta del tamaño de los sitios.
    Usted necesitará prueba para «móvil» que no es precedida por «opera» en vez de «móvil»

    o solo podría olvidarse de Opera Mobile.

    • Opera mobile no uso ‘móvil’ en la cadena del usuario, se utiliza «mobi’. Consulte aquí
    • Opera Mobile para teléfonos móviles ha «Opera Mobi» en la cadena de agente de usuario, pero Opera Mobile para tablets ha «Opera Tablet» en la cadena de agente de usuario.
  12. 1

    Si utiliza la ausencia de «Móvil», a continuación, su casi correcta.
    Pero hay HTC Sensation 4G (4.3 pulgadas con android 2.X), que no envía la palabra clave Móvil.

    La razón por la que usted desea, puede tratar por separado es debido a iframes etc.

  13. 0

    La 51Degrees beta, 1.0.1.6 y la última versión estable 1.0.2.2 (4/28/2011) ahora tienen la capacidad de oler para tablet. Básicamente lo largo de las líneas de:

    string capability = Request.Browser["is_tablet"];

    Espero que esto ayude.

    • Sí, pero como?

Dejar respuesta

Please enter your comment!
Please enter your name here