Android SDK for Jason GNSS Positioning-as-a-Service

Jason is Rokubun's Cloud PPK Service, a cloud service that compute the position of a receiver using the raw GNSS measurements.

License

License

GroupId

GroupId

cat.rokubun.jason
ArtifactId

ArtifactId

sdk
Last Version

Last Version

1.12.0-26-gf8a391c
Release Date

Release Date

Type

Type

aar
Description

Description

Android SDK for Jason GNSS Positioning-as-a-Service
Jason is Rokubun's Cloud PPK Service, a cloud service that compute the position of a receiver using the raw GNSS measurements.
Project URL

Project URL

https://github.com/rokubun/jason-sdk-android
Source Code Management

Source Code Management

https://github.com/rokubun/jason-sdk-android

Download sdk

How to add to project

<!-- https://jarcasting.com/artifacts/cat.rokubun.jason/sdk/ -->
<dependency>
    <groupId>cat.rokubun.jason</groupId>
    <artifactId>sdk</artifactId>
    <version>1.12.0-26-gf8a391c</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/cat.rokubun.jason/sdk/
implementation 'cat.rokubun.jason:sdk:1.12.0-26-gf8a391c'
// https://jarcasting.com/artifacts/cat.rokubun.jason/sdk/
implementation ("cat.rokubun.jason:sdk:1.12.0-26-gf8a391c")
'cat.rokubun.jason:sdk:aar:1.12.0-26-gf8a391c'
<dependency org="cat.rokubun.jason" name="sdk" rev="1.12.0-26-gf8a391c">
  <artifact name="sdk" type="aar" />
</dependency>
@Grapes(
@Grab(group='cat.rokubun.jason', module='sdk', version='1.12.0-26-gf8a391c')
)
libraryDependencies += "cat.rokubun.jason" % "sdk" % "1.12.0-26-gf8a391c"
[cat.rokubun.jason/sdk "1.12.0-26-gf8a391c"]

Dependencies

compile (15)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-android-extensions-runtime jar 1.3.61
org.jetbrains.kotlin : kotlin-stdlib-jdk7 jar 1.3.61
com.squareup.retrofit2 : converter-gson jar 2.7.1
com.squareup.retrofit2 : adapter-rxjava2 jar 2.7.1
com.squareup.retrofit2 : retrofit jar 2.7.2
com.squareup.okhttp3 : okhttp jar 4.4.0
com.squareup.okhttp3 : logging-interceptor jar 4.4.0
io.reactivex.rxjava2 : rxandroid jar 2.0.2
io.reactivex.rxjava2 : rxkotlin jar 2.2.0
io.reactivex.rxjava3 : rxjava jar 3.0.1
androidx.appcompat » appcompat jar 1.1.0
com.google.android.gms » play-services-location jar 17.0.0
androidx.core » core-ktx jar 1.2.0
org.jetbrains.kotlinx : kotlinx-coroutines-android jar 1.3.0
com.jakewharton.retrofit : retrofit2-kotlin-coroutines-experimental-adapter jar 1.0.0

Project Modules

There are no modules declared in this project.

Android SDK for Jason GNSS Positioning-as-a-Service

Maven Central

Jason GNSS Positioning-as-a-Service is a cloud-based positioning engine that uses GNSS data. One of the main features of this service is that offers an API so that users can automatize the GNSS data processing without the need to access the front-end.

The online documentation of the service can be found here.

How to Use the SDK module

The SDK can be integrated into your projects like other libraries.

Permission approval:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    <application ...>
        ...
    </application>
</manifest>

Gradle dependencies for SDK: The latest version of the SDK can be found in Maven Central Repository.

dependencies {

    // Jason SDK
    implementation 'cat.rokubun.jason:sdk:$jason_version'
    
    // https://github.com/square/retrofit
    implementation "com.squareup.retrofit2:converter-gson:2.7.1"
    implementation "com.squareup.retrofit2:adapter-rxjava2:2.7.1"
    implementation "com.squareup.retrofit2:retrofit:2.7.2"
    // https://github.com/square/okhttp
    implementation "com.squareup.okhttp3:okhttp:4.4.0"
    implementation "com.squareup.okhttp3:logging-interceptor:4.4.0"
     // https://github.com/ReactiveX/RxAndroid
    implementation "io.reactivex.rxjava2:rxandroid:2.0.2"
    implementation "io.reactivex.rxjava3:rxjava:3.0.1"
    //https://github.com/Kotlin/
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0"

}

Gradle dependencies for demo App:

dependencies {
    // JetPack Navigator
    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    //https://jakewharton.github.io/butterknife/
    implementation "com.jakewharton:butterknife:$butterknife_version"
    //Recyclerview
    implementation "com.android.support:recyclerview-v7:+"
    //Material 
    implementation "com.google.android.material:material:1.1.0"

}

Authentication & Functionally

It is important that you have the JASON_API_KEY and JASON_SECRET_TOKEN environment variables. These can be fetched by accessing your area in the Jason PaaS and then going to My Account -> API Credentials.

  Context context;

  String processId=3145;
  Long maxTimeoutMillis = 60000L;

  //Instantiate a JasanClient
  JasonClient jasonClient = JasonClient.Companion.getInstance(context);
  ProcessInformation processInformation;
  ProcessStatus processStatus;
  
  // You should perform login before submiting a 
  // process with username and password
  jasonClient.loging(username, password);
  // Or you can login by settign the token 
  jasonClient.login(token)
  
  // Submit a process
  Single<ProcessInformation> submitProcess = jasonClient.submitProcess(type, roverFile);
  submitProcess.map(process -> processInformation = new ProcessInformation(process.getMessage(), process.getId()))
  
  // Get the status of your process
  Observable<ProcessStatus> processStatus =  jasonClient.getProcessStatus(processId, maxTimeoutMillis) 
  processStatus.map(process -> processStatus = new ProcessStatus(process.processLog, process.processResult))

  // When process is finished you can get a specific result
  processStatus.processResult.getSppKmlUrl()
  processStatus.processResult.getPreciseCsvUrl()
  ...
  // Or can download results file
  processStatus.processResult.getZipUrl()
cat.rokubun.jason

Rokubun

Versions

Version
1.12.0-26-gf8a391c
1.12.0-25-g2290520
1.12.0-24-g9170e07
1.7.0-1-g89c9bce
1.7.0