Install Flutter demo app
Telematics SDK
A flutter plugin for tracking the person's driving behavior such as speeding, turning, braking and several other things on iOS and Android.
Disclaimer: This project uses Telematics SDK which belongs to DATA MOTION PTE. LTD.
When using Telematics SDK refer to these terms of use
Getting Started
Initial app setup & credentials
For commercial use, you need to create a sandbox account DataHub and get InstanceId
auth keys to work with our API.
Android
AndroidManifest.xml
add to file ./app/src/main/AndroidManifest.xml props:
- 'xmlns:tools="http://schemas.android.com/tools"' into manifest tag
- 'tools:replace="android:label"' into __application tag
as shown below:
<manifest
xmlns:tools="http://schemas.android.com/tools">
<application
tools:replace="android:label">
...
</application>
...
</manifest>
add network permissions
<manifest>
...
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
...
Proguard
-keep public class com.raxeltelematics.** {*;}
Android Advanced
SetTrackingSettings
-
Override application class extends TelematicsSDKApp
import com.telematicssdk.TelematicsSDKApp class App: TelematicsSDKApp() { //... }
-
add to tag application of file ./app/src/main/AndroidManifest.xml this class name:
<application android:name=".App"> ... </application>
-
add Raxel repository into (module)/gradle.build
dependencies { //... implementation "com.telematicssdk:tracking: 2.2.231" }
iOS
Add permissions in your project's ios/Runner/Info.plist
:
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>location</string>
<string>remote-notification</string>
</array>
<key>NSMotionUsageDescription</key>
<string>Please, provide permissions for this Demo</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Please, provide permissions for this Demo</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Please, provide permissions for this Demo</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Please, provide permissions for this Demo</string>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>sdk.damoov.apprefreshtaskid</string>
<string>sdk.damoov.appprocessingtaskid</string>
</array>
Starting from iOS version 15 and above, as well as Flutter 2.0.6, modification of AppDelegate.swift is required
You must request permissions for the application before GeneratedPluginRegistrant
Example [AppDelegate.swift] (https://github.com/Mobile-Telematics/telematicsSDK-demoapp-flutter-/blob/1f8f59d5abae3a168b89c4dff3c09342092f79b3/example/ios/Runner/AppDelegate.swift)
import Flutter
import UIKit
import RaxelPulse
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Documentation: https://docs.damoov.com/docs/-download-the-sdk-and-install-it-in-your-environment#setting-up-the-permissions-wizard
RPPermissionsWizard.returnInstance().launch(finish: { _ in
RPEntry.initialize(withRequestingPermissions: true)
let token = NSString(string: "Please, enter your Token")
RPEntry.instance().virtualDeviceToken = token
let options = launchOptions ?? [:]
RPEntry.application(application, didFinishLaunchingWithOptions: options)
})
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Links
Updated almost 3 years ago