The M-Trust SDKs allow you to integrate our hardware tightly within your mobile applications. The SDKs are available for the SEC-Reader, IMP-Reader.
The SDKs allow you to quickly integrate an identification and verification step into your application.
All pub.dev packages included in the repository.
The SDKs are optimized for cross-platform mobile development, with support for iOS and Android devices. Built using the Flutter framework, they provide a unified development experience across platforms, simplifying app development and maintenance.
While we recommend to implement your application using Flutter, the SDKs can also be used in native iOS and Android applications by following the native embedding guides provided by Flutter. Depending on the connection strategies you want to enable please make sure to configure the correct permissions:
![]() |
![]() |
![]() |
---|---|---|
SEC Kit | IMP Kit | Barcode Kit |
Integrate with SEC-Readers |
Integrate with IMP-Readers |
Read barcodes on iOS and Android |
In android/app/src/main/AndroidManifest.xml
, add the following permissions:
<manifest ...>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application>
...
</manifest>
In ios/Runner/Info.plist
, add the following keys for Bluetooth and location permissions:
<dict>
...
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Need BLE permission</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Need BLE permission</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Need Location permission</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Need Location permission</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Need Location permission</string>
In macos/Runner/[DebugProfile/Release].entitlements
, add:
<dict>
...
<key>com.apple.security.device.serial</key>
<true/>
</dict>
In android/app/src/main/AndroidManifest.xml
, add the following for USB host support:
<manifest ...>
<uses-feature android:name="android.hardware.usb.host"
android:required="true"/>
<application>
<activity>
...
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
</activity>
</application>
Add a file at android/app/src/main/res/xml/device_filter.xml
with the following content:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-device vendor-id="1155" product-id="22336" />
</resources>
We welcome contributions! Please fork the repository and submit a pull request with your changes. Ensure that your code adheres to our coding standards and includes appropriate tests.
Utility for interacting with this repo:
dart pub get # Get dependencies
dart run packages.dart
Manage mtrust_urp packages
Usage: packages <command> [arguments]
Global options:
-h, --help Print this usage information.
--changed-only Only run the command on packages that have staged changes
Available commands:
analyze Run flutter analyze in all packages
install Run flutter pub get in all packages
set-deps Set all packages dependencies to local or hosted
test Run flutter test in all packages
update-urp-types Update mtrust_urp_types in all packages
Run "packages help <command>" for more information about a command.
This repository contains a husky pre-commit hook that runs analysis and tests before committing. Please ensure that you have installed husky before committing.
npm install
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.