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