Android
SDK Setup
Requirements
The SDK supports Android version 5.0 ("Lollipop", API level 21) or higher and the following ABIs:
armeabi-v7a
arm64-v8a
Integrating the SDK
Adding the dependencies
Specify the repositories in settings.gradle
(or in build.gradle
, if you are using an older version of Android Gradle plugin):
dependencyResolutionManagement {
repositories {
maven {
url 'https://maven.navmii.com/artifactory/navmii-public'
credentials {
username "public"
password "public1&"
}
}
maven {
url 'https://repository.apache.org/content/repositories/snapshots/'
}
}
}
Add the following lines to your app's build.gradle
:
android {
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation 'com.navmii.android:dashcam-sdk:1.2.2.178'
}
If you want to always use the latest version of the SDK, you can specify a dynamic version instead of a fixed one. For example:
dependencies {
implementation 'com.navmii.android:dashcam-sdk:1.+'
}
Adding API Key to the Manifest
Add the following lines to the AndroidManifest.xml
of your application within the <application></application>
block:
<meta-data android:name="com.navmii.sdk.API_KEY" android:value="<YOUR_API_KEY>" />
Setting the permissions
Add the following lines to the AndroidManifest.xml
within the <manifest></manifest>
block:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="true" />
If you want to record audio, also add the following permission:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Initializing the SDK
After requesting the required permissions from user as described here, you can initialize the SDK using initSdkAsync
method:
...
val requestPermissionLauncher =
registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { result: Map<String, Boolean> ->
for ((permission, isGranted) in result) {
if (!isGranted) {
return@registerForActivityResult
}
}
val settings = DashcamSdk.ConfigurationSettings.builder()
.setLibraryLocation(DocumentFile.fromFile(getExternalFilesDir(null)!!))
.build()
DashcamSdk.getInstance().addStateChangeListener { state ->
Log.d("MainActivity", "SDK state: $state, error: ${DashcamSdk.getInstance().initializationError}")
}
DashcamSdk.getInstance().initSdkAsync(this, settings)
}
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
requestPermissionLauncher.launch(arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_FINE_LOCATION))
}
API Reference
Please follow the link below for the API reference
https://navmii-api-reference.s3.eu-west-1.amazonaws.com/dashcam-sdk/Android/1.2.2.178/index.html