https://github.com/ua-parser/uap-java
Java implementation of ua-parser
https://github.com/ua-parser/uap-java
Last synced: 12 months ago
JSON representation
Java implementation of ua-parser
- Host: GitHub
- URL: https://github.com/ua-parser/uap-java
- Owner: ua-parser
- License: other
- Created: 2014-11-09T04:06:58.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-01-25T13:03:27.000Z (over 2 years ago)
- Last Synced: 2025-06-21T06:34:29.447Z (12 months ago)
- Language: Java
- Size: 95.7 KB
- Stars: 415
- Watchers: 31
- Forks: 179
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ua_parser Java Library
======================
This is the Java implementation of [ua-parser](https://github.com/ua-parser).
The implementation uses the shared regex patterns and overrides from [regexes.yaml](https://github.com/ua-parser/uap-core/blob/master/regexes.yaml).
Import Dependency:
------
Maven
```xml
com.github.ua-parser
uap-java
1.6.1
```
Gradle (Kotlin)
```gradle
implementation("com.github.ua-parser:uap-java:1.6.1")
```
SBT
```sbt
"com.github.ua-parser" % "uap-java" % "1.6.1"
```
Build:
------
uap-java depends on the uap-core project therefore it uses a Git submodule to represent that dependency.
Before building uap-java, a copy of the uap-core project must be checked out within the local uap-java repository.
In order to do this, execute the following command (from the base `uap-java` folder) to initialize and checkout the submodule.
```
git submodule update --init --remote --checkout --recursive
```
you will then have the following folder `uap-java/uap-core` which contains the child repository.
To build the project, execute
```
mvn package
```
Usage:
--------
```java
import ua_parser.Parser;
import ua_parser.Client;
...
String uaString = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3";
Parser uaParser = new Parser();
Client c = uaParser.parse(uaString);
System.out.println(c.userAgent.family); // => "Mobile Safari"
System.out.println(c.userAgent.major); // => "5"
System.out.println(c.userAgent.minor); // => "1"
System.out.println(c.os.family); // => "iOS"
System.out.println(c.os.major); // => "5"
System.out.println(c.os.minor); // => "1"
System.out.println(c.device.family); // => "iPhone"
```
### Changelog
Changelog can be found [here](https://github.com/ua-parser/uap-java/wiki/ChangeLog).
Original Author:
-------
* Steve Jiang [@sjiang](https://twitter.com/sjiang)
Based on the python implementation by Lindsey Simon and using agent data from BrowserScope