Xiaomi Push (Mi)
This will guide you to integrate Xiaomi push notifications in Xiaomi android flutter applications using SuprSend
This section is a step-by-step guide to integrating Xiaomi as your service provider for sending Android Push notifications. Integrating Xiaomi as your push vendor can increase your push delivery by around 30%. So, it is recommended to integrate Xiaomi as well as FCM for sending push notifications to your android devices.
Example integration project can be found here: https://github.com/suprsend/suprsend-flutter-sdk/tree/main/example
Follow the below steps for the Xiaomi integration guide in your app:
Step-1: Create a Xiaomi App
The first step is to create a Xiaomi application on Mi portal. Once the app and project are created on the Xiaomi platform, you can get the Xiaomi tokens under "App management" -> "App info" which will be used for setting the Xiaomi push through SuprSend.
Step-2: Add Mi SDK to your project
1.1. Download the Xiaomi artifact(aar)
1.2. Create the libs folder inside your app module(android > app) and place the Xiaomi artifact(aar) that you downloaded in it.
1.3. Include this Xiaomi AAR in your app dependencies by adding below in your dependencies section of the app module.
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar","*.aar"])
}
Step-3: Permissions for Xiaomi integration
For integration with Xiaomi please register the below permission in your AndroidManifest.xml. These are the permissions that are required by Xiaomi SDK to work. Replace your_package_name with your package name in the below snippet.
<!--Xiaomi Starts - Sdk Needs this-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<permission
android:name="<your_package_name>.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="<your_package_name>.permission.MIPUSH_RECEIVE" />
<!--Xiaomi Ends-->
Step-4: Adding android components for Xiaomi integration
Below are the android components that are needed in your android AndroidManifest.xml.
<!--Xiaomi Starts-->
<receiver
android:name="app.suprsend.xiaomi.SSXiaomiReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter>
</receiver>
<service
android:name="com.xiaomi.push.service.XMJobService"
android:enabled="true"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"
android:process=":pushservice" />
<service
android:name="com.xiaomi.push.service.XMPushService"
android:enabled="true"
android:process=":pushservice" />
<service
android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
android:enabled="true"
android:exported="true" />
<service
android:name="com.xiaomi.mipush.sdk.MessageHandleService"
android:enabled="true" />
<receiver
android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver
android:name="com.xiaomi.push.service.receivers.PingReceiver"
android:exported="false"
android:process=":pushservice">
<intent-filter>
<action android:name="com.xiaomi.push.PING_TIMER" />
</intent-filter>
</receiver>
<!--Xiaomi Ends-->
Step-5: Initialize SuprSend SDK
Initialize Xiaomi push inside your SDK using SuprSend like below. Replace AppID and AppKey with your values which you can get as mentioned in Step 1.
import android.app.Application
import app.suprsend.SSApi; // import sdk
class MainApplication : Application(){
override fun onCreate() {
SSApi.init(this, WORKSPACE KEY, WORKSPACE SECRET) // Important! without this, SDK will not work
SSApi.initXiaomi(this, xiaomi_app_id, xiaomi_api_key) // Add this to initialize Xiaomi notifications framework
super.onCreate()
}
}
Updated almost 2 years ago
Add Xiaomi vendor configuration on SuprSend dashboard vendor page to start sending notification