14 通知栏相关API - MiEcosystem/NewXmPluginSDK GitHub Wiki

通知栏相关API

使用Notification时,icon只能用App Icon,并且Intent需要设置PluginServiceHelper获取的Intent。

还有一点,NotificationBuilder的Context需用activity(),当用户点击通知时,设备在MessageReceiver里面会收到MSG_NOTIFICATION_PENDING_INTENT消息。

需要注意,intent里面要保存did,唤起米家扩展程序时启动activity使用。

XmPluginHostApi

/**
 * ApiLevel:45
 * 获取米家扩展程序notification的icon
 */
public abstract int getMiHomeNotificationIcon();

PluginServiceHelper

/**
 * ApiLevel: 27
 * 获取调用App的Intent
 * @param model
 * @param params
 * @return
 */
@Deprecated
public static Intent getNotificationIntent(String model, Intent params) {
    return getNotificationIntent(model, "", params);
}

/**
 * ApiLevel: 48
 * 获取调用App的Intent
 * @param model
 * @param did
 * @param params
 * @return
 */
public static Intent getNotificationIntent(String model, String did, Intent params) {
    Intent intent = new Intent();
    intent.setClassName("com.xiaomi.smarthome",
            "com.xiaomi.smarthome.device.utils.DeviceLauncher2");
    intent.setAction("pluignservice.startForeground.notification.pendingIntent");
    intent.putExtra("params", params);
    intent.putExtra("model", model);
    intent.putExtra("did", did);
    return intent;
}