The SDK supports Android version 5.0 ("Lollipop", API level 21) or higher and the following ABIs:
armeabi-v7a
arm64-v8a
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.+' } |
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>" /> |
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" /> |
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)) } |
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