Class UserAgentUtil

java.lang.Object
org.ocpsoft.rewrite.servlet.config.UserAgentUtil

public class UserAgentUtil extends Object
The DetectSmartPhone class encapsulates information about a browser's connection to your web site. You can use it to find out whether the browser asking for your site's content is probably running on a mobile device. The methods were written so you can be as granular as you want. For example, enquiring whether it's as specific as an iPod Touch or as general as a smartphone class device. The object's methods return true, or false.
  • Field Details

  • Constructor Details

    • UserAgentUtil

      public UserAgentUtil(String userAgent, String httpAccept)
      Initialize the userAgent and httpAccept variables
      Parameters:
      userAgent - the User-Agent header
      httpAccept - the Accept header
  • Method Details

    • getUserAgent

      public String getUserAgent()
      Return the lower case HTTP_USER_AGENT
      Returns:
      userAgent
    • getHttpAccept

      public String getHttpAccept()
      Return the lower case HTTP_ACCEPT
      Returns:
      httpAccept
    • getIsIphone

      public boolean getIsIphone()
      Return whether the device is an Iphone or iPod Touch
      Returns:
      isIphone
    • getIsTierTablet

      public boolean getIsTierTablet()
      Return whether the device is in the Tablet Tier.
      Returns:
      isTierTablet
    • getIsTierIphone

      public boolean getIsTierIphone()
      Return whether the device is in the Iphone Tier.
      Returns:
      isTierIphone
    • getIsTierRichCss

      public boolean getIsTierRichCss()
      Return whether the device is in the 'Rich CSS' tier of mobile devices.
      Returns:
      isTierRichCss
    • getIsTierGenericMobile

      public boolean getIsTierGenericMobile()
      Return whether the device is a generic, less-capable mobile device.
      Returns:
      isTierGenericMobile
    • initDeviceScan

      public void initDeviceScan()
      Initialize Key Stored Values.
    • detectIphone

      public boolean detectIphone()
      Detects if the current device is an iPhone.
      Returns:
      detection of an iPhone
    • detectIpod

      public boolean detectIpod()
      Detects if the current device is an iPod Touch.
      Returns:
      detection of an iPod Touch
    • detectIpad

      public boolean detectIpad()
      Detects if the current device is an iPad tablet.
      Returns:
      detection of an iPad
    • detectIphoneOrIpod

      public boolean detectIphoneOrIpod()
      Detects if the current device is an iPhone or iPod Touch.
      Returns:
      detection of an iPhone or iPod Touch
    • detectIos

      public boolean detectIos()
      Detects *any* iOS device: iPhone, iPod Touch, iPad.
      Returns:
      detection of an Apple iOS device
    • detectAndroid

      public boolean detectAndroid()
      Detects *any* Android OS-based device: phone, tablet, and multi-media player. Also detects Google TV.
      Returns:
      detection of an Android device
    • detectAndroidPhone

      public boolean detectAndroidPhone()
      Detects if the current device is a (small-ish) Android OS-based device used for calling and/or multi-media (like a Samsung Galaxy Player). Google says these devices will have 'Android' AND 'mobile' in user agent. Ignores tablets (Honeycomb and later).
      Returns:
      detection of an Android phone
    • detectAndroidTablet

      public boolean detectAndroidTablet()
      Detects if the current device is a (self-reported) Android tablet. Google says these devices will have 'Android' and NOT 'mobile' in their user agent.
      Returns:
      detection of an Android tablet
    • detectAndroidWebKit

      public boolean detectAndroidWebKit()
      Detects if the current device is an Android OS-based device and the browser is based on WebKit.
      Returns:
      detection of an Android WebKit browser
    • detectGoogleTV

      public boolean detectGoogleTV()
      Detects if the current device is a GoogleTV.
      Returns:
      detection of GoogleTV
    • detectWebkit

      public boolean detectWebkit()
      Detects if the current browser is based on WebKit.
      Returns:
      detection of a WebKit browser
    • detectWindowsPhone

      public boolean detectWindowsPhone()
      Detects if the current browser is EITHER a Windows Phone 7.x OR 8 device
      Returns:
      detection of Windows Phone 7.x OR 8
    • detectWindowsPhone7

      public boolean detectWindowsPhone7()
      Detects a Windows Phone 7.x device (in mobile browsing mode).
      Returns:
      detection of Windows Phone 7
    • detectWindowsPhone8

      public boolean detectWindowsPhone8()
      Detects a Windows Phone 8 device (in mobile browsing mode).
      Returns:
      detection of Windows Phone 8
    • detectWindowsMobile

      public boolean detectWindowsMobile()
      Detects if the current browser is a Windows Mobile device. Excludes Windows Phone 7.x and 8 devices. Focuses on Windows Mobile 6.xx and earlier.
      Returns:
      detection of Windows Mobile
    • detectBlackBerry

      public boolean detectBlackBerry()
      Detects if the current browser is any BlackBerry. Includes BB10 OS, but excludes the PlayBook.
      Returns:
      detection of Blackberry
    • detectBlackBerry10Phone

      public boolean detectBlackBerry10Phone()
      Detects if the current browser is a BlackBerry 10 OS phone. Excludes tablets.
      Returns:
      detection of a Blackberry 10 device
    • detectBlackBerryTablet

      public boolean detectBlackBerryTablet()
      Detects if the current browser is on a BlackBerry tablet device. Example: PlayBook
      Returns:
      detection of a Blackberry Tablet
    • detectBlackBerryWebKit

      public boolean detectBlackBerryWebKit()
      Detects if the current browser is a BlackBerry device AND uses a WebKit-based browser. These are signatures for the new BlackBerry OS 6. Examples: Torch. Includes the Playbook.
      Returns:
      detection of a Blackberry device with WebKit browser
    • detectBlackBerryTouch

      public boolean detectBlackBerryTouch()
      Detects if the current browser is a BlackBerry Touch device, such as the Storm, Torch, and Bold Touch. Excludes the Playbook.
      Returns:
      detection of a Blackberry touchscreen device
    • detectBlackBerryHigh

      public boolean detectBlackBerryHigh()
      Detects if the current browser is a BlackBerry device AND has a more capable recent browser. Excludes the Playbook. Examples, Storm, Bold, Tour, Curve2 Excludes the new BlackBerry OS 6 and 7 browser!!
      Returns:
      detection of a Blackberry device with a better browser
    • detectBlackBerryLow

      public boolean detectBlackBerryLow()
      Detects if the current browser is a BlackBerry device AND has an older, less capable browser. Examples: Pearl, 8800, Curve1
      Returns:
      detection of a Blackberry device with a poorer browser
    • detectS60OssBrowser

      public boolean detectS60OssBrowser()
      Detects if the current browser is the Symbian S60 Open Source Browser.
      Returns:
      detection of Symbian S60 Browser
    • detectSymbianOS

      public boolean detectSymbianOS()
      Detects if the current device is any Symbian OS-based device, including older S60, Series 70, Series 80, Series 90, and UIQ, or other browsers running on these devices.
      Returns:
      detection of SymbianOS
    • detectPalmOS

      public boolean detectPalmOS()
      Detects if the current browser is on a PalmOS device.
      Returns:
      detection of a PalmOS device
    • detectPalmWebOS

      public boolean detectPalmWebOS()
      Detects if the current browser is on a Palm device running the new WebOS.
      Returns:
      detection of a Palm WebOS device
    • detectWebOSTablet

      public boolean detectWebOSTablet()
      Detects if the current browser is on an HP tablet running WebOS.
      Returns:
      detection of an HP WebOS tablet
    • detectOperaMobile

      public boolean detectOperaMobile()
      Detects Opera Mobile or Opera Mini.
      Returns:
      detection of an Opera browser for a mobile device
    • detectOperaAndroidPhone

      public boolean detectOperaAndroidPhone()
      Detects Opera Mobile on an Android phone.
      Returns:
      detection of an Opera browser on an Android phone
    • detectOperaAndroidTablet

      public boolean detectOperaAndroidTablet()
      Detects Opera Mobile on an Android tablet.
      Returns:
      detection of an Opera browser on an Android tablet
    • detectKindle

      public boolean detectKindle()
      Detects if the current device is an Amazon Kindle (eInk devices only). Note: For the Kindle Fire, use the normal Android methods.
      Returns:
      detection of a Kindle
    • detectAmazonSilk

      public boolean detectAmazonSilk()
      Detects if the current Amazon device is using the Silk Browser. Note: Typically used by the the Kindle Fire.
      Returns:
      detection of an Amazon Kindle Fire in Silk mode.
    • detectGarminNuvifone

      public boolean detectGarminNuvifone()
      Detects if the current browser is a Garmin Nuvifone.
      Returns:
      detection of a Garmin Nuvifone
    • detectBada

      public boolean detectBada()
      Detects a device running the Bada smartphone OS from Samsung.
      Returns:
      detection of a Bada device
    • detectTizen

      public boolean detectTizen()
      Detects a device running the Tizen smartphone OS.
      Returns:
      detection of a Tizen device
    • detectMeego

      public boolean detectMeego()
      Detects a device running the Meego OS.
      Returns:
      detection of a Meego device
    • detectDangerHiptop

      public boolean detectDangerHiptop()
      Detects the Danger Hiptop device.
      Returns:
      detection of a Danger Hiptop
    • detectSonyMylo

      public boolean detectSonyMylo()
      Detects if the current browser is a Sony Mylo device.
      Returns:
      detection of a Sony Mylo device
    • detectMaemoTablet

      public boolean detectMaemoTablet()
      Detects if the current device is on one of the Maemo-based Nokia Internet Tablets.
      Returns:
      detection of a Maemo OS tablet
    • detectArchos

      public boolean detectArchos()
      Detects if the current device is an Archos media player/Internet tablet.
      Returns:
      detection of an Archos media player
    • detectGameConsole

      public boolean detectGameConsole()
      Detects if the current device is an Internet-capable game console. Includes many handheld consoles.
      Returns:
      detection of any Game Console
    • detectSonyPlaystation

      public boolean detectSonyPlaystation()
      Detects if the current device is a Sony Playstation.
      Returns:
      detection of Sony Playstation
    • detectGamingHandheld

      public boolean detectGamingHandheld()
      Detects if the current device is a handheld gaming device with a touchscreen and modern iPhone-class browser. Includes the Playstation Vita.
      Returns:
      detection of a handheld gaming device
    • detectNintendo

      public boolean detectNintendo()
      Detects if the current device is a Nintendo game device.
      Returns:
      detection of Nintendo
    • detectXbox

      public boolean detectXbox()
      Detects if the current device is a Microsoft Xbox.
      Returns:
      detection of Xbox
    • detectBrewDevice

      public boolean detectBrewDevice()
      Detects whether the device is a Brew-powered device.
      Returns:
      detection of a Brew device
    • detectWapWml

      public boolean detectWapWml()
      Detects whether the device supports WAP or WML.
      Returns:
      detection of a WAP- or WML-capable device
    • detectMidpCapable

      public boolean detectMidpCapable()
      Detects if the current device supports MIDP, a mobile Java technology.
      Returns:
      detection of a MIDP mobile Java-capable device
    • detectSmartphone

      public boolean detectSmartphone()
      Check to see whether the device is any device in the 'smartphone' category.
      Returns:
      detection of a general smartphone device
    • detectMobileQuick

      public boolean detectMobileQuick()
      Detects if the current device is a mobile device. This method catches most of the popular modern devices. Excludes Apple iPads and other modern tablets.
      Returns:
      detection of any mobile device using the quicker method
    • detectMobileLong

      public boolean detectMobileLong()
      The longer and more thorough way to detect for a mobile device. Will probably detect most feature phones, smartphone-class devices, Internet Tablets, Internet-enabled game consoles, etc. This ought to catch a lot of the more obscure and older devices, also -- but no promises on thoroughness!
      Returns:
      detection of any mobile device using the more thorough method
    • detectTierTablet

      public boolean detectTierTablet()
      The quick way to detect for a tier of devices. This method detects for the new generation of HTML 5 capable, larger screen tablets. Includes iPad, Android (e.g., Xoom), BB Playbook, WebOS, etc.
      Returns:
      detection of any device in the Tablet Tier
    • detectTierIphone

      public boolean detectTierIphone()
      The quick way to detect for a tier of devices. This method detects for devices which can display iPhone-optimized web content. Includes iPhone, iPod Touch, Android, Windows Phone 7 and 8, BB10, WebOS, Playstation Vita, etc.
      Returns:
      detection of any device in the iPhone/Android/Windows Phone/BlackBerry/WebOS Tier
    • detectTierRichCss

      public boolean detectTierRichCss()
      The quick way to detect for a tier of devices. This method detects for devices which are likely to be capable of viewing CSS content optimized for the iPhone, but may not necessarily support JavaScript. Excludes all iPhone Tier devices.
      Returns:
      detection of any device in the 'Rich CSS' Tier
    • detectTierOtherPhones

      public boolean detectTierOtherPhones()
      The quick way to detect for a tier of devices. This method detects for all other types of phones, but excludes the iPhone and RichCSS Tier devices.
      Returns:
      detection of a mobile device in the less capable tier