如果APP未加入小米MIUI系统的自启动,或者启动一次。APP是无法收到系统广播的。所以我们程序的开机启动,三方推送服务无法正常使用。
换一句话说就是APP在小米MIUI中,必须启动一次,推送等服务才能正常使用!
我在程序启动的时候,通过
TJbuild.JavaClass.MANUFACTURER
来判断系统是否是小米。
如果是小米系统并且是第一次启动就跳转到自启动管理
Intent := TJIntent.JavaClass.init;
Intent.setAction(StringToJString('miui.intent.action.APP_PERM_EDITOR'));
Intent.addCategory(TJIntent.JavaClass.CATEGORY_DEFAULT);
Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
comp:=TJComponentName.JavaClass.init(StringToJString('com.android.settings'),StringToJString('com.android.settings.MiuiSettings'));
Intent.setComponent(comp);
SharedActivity.startActivity(Intent);
在我的开机广播接收中还有一个标记,如果是通过开机广播启动,我们就正常启动。如果不是通过开机广播启动,也可以提示跳转到自启动管理。