The aim of this library is to fetch as much as possible information from a user-agent string. If a valid user-agent is provided, then the following information is determined:
- Bot or not
- For non-bots:
- browser or application
- operating system
- device type
- device brand
- Over 200 types of bots
- Almost 50 mobile applications
- Almost 1000 brands
- Almost 100 types of operating systems
- Around 200 types of browsers
- On average, it takes 12ms to parse a user-agent
The recommended way to use this library is through your build tool.
The device-detector artifact is published to Maven Central, using the group com.deevvi
.
Latest stable version is 1.14.0
.
Therefore,it can be added to your Gradle project by adding the dependencies:
compile "com.deevvi:device-detector:1.14.0"
and in Maven:
<dependency>
<groupId>com.deevvi</groupId>
<artifactId>device-detector</artifactId>
<version>1.14.0</version>
</dependency>
Code example:
DeviceDetectorParser parser = DeviceDetectorParser.getClient();
DeviceDetectorResult result = parser.parse("Mozilla/5.0 (Linux; Android 7.1.1; G8232 Build/41.2.A.0.235) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36");
System.out.println("Result found: " + result.found());
System.out.println("User-agent is mobile: " + result.isMobileDevice());
System.out.println("User-agent is bot: " + result.isBot());
System.out.println("Result as JSON: " + result.toJSON());
Output:
Result found: true
User-agent is mobile: true
User-agent is bot: false
Result as JSON: {"os":{"osFamily":"Android","name":"Android","shortName":"AND","version":"7.1.1","platform":""},"client":{"deviceType":"browser","engine":"Blink","browserFamily":"Chrome","name":"Chrome Mobile","shortName":"CM","version":"55.0.2883.91"},"device":{"deviceType":"smartphone","model":"Xperia XZs","brand":"Sony"}}