Xamarin bindings for Estimote SDKs.
Visit https://developer.estimote.com to learn more about the variety of Estimote SDKs, and for the integration tutorials. (The documentation is mostly in Swift and Java, but the Xamarin/C# APIs are almost 1:1 with the native APIs, so the docs should still be quite useful.)
You can get all the Estimote.* packages on NuGet.
We also recommend cloning this repo and checking out the ExampleApps—for example, to see how to request the necessary Location permission on Android.
Here's a list of a few extra things that you need to configure in your projects:
iOS
In your Info.plist file, you need to add
NSLocationWhenInUseUsageDescription
and NSLocationAlwaysAndWhenInUseUsageDescription
NSBluetoothAlwaysUsageDescription
UIBackgroundModes
=> bluetooth-central
Android
In your AndroidManifest.xml, you need to add
these <uses-permission>
definitions inside the <manifest>
tag:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
this <service>
definition inside the <application>
tag:
<service
android:name="com.estimote.scanning_plugin.packet_provider.service.PacketProviderWrapperService"
android:enabled="true"
android:exported="false" />
here's a full example from the bundled Example.Android.Indoor app:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="com.estimote.example.Indoor">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:allowBackup="true" android:label="@string/app_name">
<service
android:name="com.estimote.scanning_plugin.packet_provider.service.PacketProviderWrapperService"
android:enabled="true"
android:exported="false" />
</application>
</manifest>
Let us know your thoughts and feedback on forums.estimote.com.