03 FAQ - MiEcosystem/NewXmPluginSDK GitHub Wiki
常见问题
米家app提供的每个API都有个对应的api level,这个是什么意思?
每一个版本的米家app都有一个对应的插件api level,只有低于这个api level的插件才能在此版本的米家app运行。
当米家app给插件提供新的API时,我们会修改整个app的api level,确保插件不会在低版本的米家app调用这些API。
添加通用的打开设备安全设置接口
- 调用新版设置页面接口,传入参数"security_setting_enable",打开安全设置选项
Intent intent = new Intent(); intent.putExtra("security_setting_enable",true); mHostActivity.openMoreMenu2(menus, true, REQUEST_MENUS, intent);
- 在需要验证pincode的页面onCreate()中调用如下接口
mHostActivity.enableVerifyPincode();
更新了微信sdk库,如果使用下面的接口插件要更新插件,否则会crash
XmPluginHostApi.java /** * 在ApiLevel:25后升级了微信sdk,有用到这个接口的必须更新插件sdk适配,发布新版插件并且修改minPluginSdkApiVersion为25 * ApiLevel:20 创建米家app注册的微信接口 */ public abstract IWXAPI createWXAPI(Context context, boolean bl);
蓝牙设备的固件升级(OTA),插件如何处理?
请参考蓝牙固件升级API
米家app不支持插件后台Service运行固件升级,只能在Activity中执行固件升级。
插件是否允许访问自己的后台服务器?
插件禁止直接访问自己的网络服务,需要进行后台对接,否则无法通过审核,详情请咨询小米智能家庭后台工作人员。
为什么插件在高版本Android系统可以下载运行,在低版本Android就一直下载失败?
请检查插件工程的build.gradle脚本,确保minSdkVersion参数配置与米家app保持一致,目前米家app的minSdkVersion为15
不符合小米蓝牙标准协议的插件如何获取设备信息
在设备列表调起插件,消息为
IXmPluginMessageReceiver.LAUNCHER
在设备分组列表调起插件,消息为
IXmPluginMessageReceiver.MSG_BLUETOOTH_PAIRING
插件可通过intent.getParcelableArrayListExtra("devices");
获取到该分组下的设备列表当设备配对或建立连接成功后需调用
XmPluginHostApi.instance().notifyBluetoothBinded(mac, token);
将设备的mac和token传递给>智能家庭(token可为空)。