Xamarin/MAUI Integration
This section outlines the steps to integrate our library into a Xamarin or MAUI project.
Download Required Files
Builds for iOS or Android are available for download. Depending on your license, select the appropriate version. If plate decoding is not required, you can opt for a lighter version of the builds.
Integrate the license
- Add the license file to the
/Resources/Raw
folder. - Update the
.csproj
file to ensure the resource is placed in the correct Android native directory (/res/raw
):
<AndroidResource Include="Resources\Raw\icare_smartscan.lic">
<LogicalName>raw/icare_smartscan.lic</LogicalName>
</AndroidResource>
Integrate the framework
Before proceeding, ensure you have converted the .aar
framework into a .dll
file, as explained in the Create DLL section.
For this guide, we assume the generated framework file is named SmartscanBinding.dll
.
- Place
SmartscanBinding.dll
in the/dll
folder at the root of the project. - Add a reference to
SmartscanBinding.dll
in your.csproj
file:
<Reference Include="SmartscanBinding.dll">
<HintPath>dll\SmartscanBinding.dll</HintPath>
</Reference>
Integrate the libraries
- Place the decoder libraries inside the
/libs
folder at the root of the project. - Declare them as Android native libraries in the
.csproj
file:
<AndroidNativeLibrary Include="libs\arm64-v8a\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\armeabi-v7a\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\x86\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\x86_64\libicaredecoders.so" />
<!-- Optional libraries depending on the selected build -->
<AndroidNativeLibrary Include="libs\arm64-v8a\libtensorflowlite_c.so" />
<AndroidNativeLibrary Include="libs\arm64-v8a\libtensorflowlite_gpu_delegate.so" />
<AndroidNativeLibrary Include="libs\armeabi-v7a\libtensorflowlite_c.so" />
<AndroidNativeLibrary Include="libs\armeabi-v7a\libtensorflowlite_gpu_delegate.so" />
<AndroidNativeLibrary Include="libs\x86\libtensorflowlite_c.so" />
<AndroidNativeLibrary Include="libs\x86\libtensorflowlite_gpu_delegate.so" />
<AndroidNativeLibrary Include="libs\x86_64\libtensorflowlite_c.so" />
<AndroidNativeLibrary Include="libs\x86_64\libtensorflowlite_gpu_delegate.so" />
Integration Overview
After completing the steps above, your .csproj
file should look like this:
<!-- Android-specific configurations -->
<ItemGroup Condition="$(TargetFramework.StartsWith(<Your Android Target>)) == true">
<!-- Include the license file -->
<AndroidResource Include="Resources\Raw\icare_smartscan.lic">
<LogicalName>raw/icare_smartscan.lic</LogicalName>
</AndroidResource>
<!-- Reference the Smartscan binding library -->
<Reference Include="SmartscanBinding.dll">
<HintPath>dll\SmartscanBinding.dll</HintPath>
</Reference>
<!-- Include required native libraries -->
<AndroidNativeLibrary Include="libs\arm64-v8a\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\armeabi-v7a\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\x86\libicaredecoders.so" />
<AndroidNativeLibrary Include="libs\x86_64\libicaredecoders.so" />
</ItemGroup>
Example Projects
Minimal demonstration projects are available at: SmartID Scan Demos