You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android开发:如何在小米设备中通过代码开启Autostart选项?

解决小米设备上推送通知因自启动禁用失效的问题

首先得明确一点:WhatsApp这类应用能自动获得自启动权限,是因为它们属于MIUI系统级白名单应用——小米会和主流、官方认证的应用厂商合作,将这些应用加入内置白名单,安装时自动授予自启动权限,无需用户手动操作。普通开发者的第三方应用没法直接拿到这个“特殊待遇”,除非你和小米官方申请加入白名单(这个门槛很高,一般只针对头部应用)。

不过针对你的问题,这里有几个实用的替代方案,能提升小米设备上的推送到达率:

1. 引导用户手动开启自启动权限

你可以先检测当前设备是否为MIUI系统,然后主动引导用户跳转到自启动设置页面。以下是实现代码示例:

// 判断是否是MIUI系统
private boolean isMIUI() {
    String manufacturer = Build.MANUFACTURER;
    return manufacturer.equalsIgnoreCase("xiaomi");
}

// 跳转到MIUI自启动设置页面
private void goToMiAutoStartSettings() {
    try {
        Intent intent = new Intent();
        intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
        startActivity(intent);
    } catch (Exception e) {
        // 如果跳转失败,引导用户手动找设置
        Toast.makeText(this, "请前往设置 -> 应用设置 -> 权限管理 -> 自启动,开启本应用的自启动权限", Toast.LENGTH_LONG).show();
    }
}

在应用首次启动或者推送失败时,调用这个逻辑提醒用户开启权限。

2. 接入小米推送服务(Mi Push)

这是最可靠的方案。Mi Push是小米官方的推送服务,属于系统级通道,即使应用没有自启动权限,小米的系统进程也会帮你接收并推送消息,到达率远高于普通FCM推送。你可以在小米开发者平台注册应用,按照文档接入Mi Push SDK,适配小米设备的推送逻辑。

3. 优化后台存活策略

如果不想接入Mi Push,也可以通过以下方式提升后台存活概率:

  • 使用FCM的高优先级消息:高优先级消息会唤醒应用,即使应用在后台,也能触发通知展示。
  • 申请必要的权限:比如“后台弹出界面”“显示悬浮窗”权限,这些权限能提升应用在MIUI后台管理中的优先级。
  • 适配MIUI的后台任务管理:避免被系统轻易杀死,比如使用WorkManager处理后台任务,或者在必要时启动前台服务(注意要符合Android前台服务的规范,避免被用户反感)。

总结一下:普通应用没法像WhatsApp那样自动开启自启动权限,但通过引导用户手动开启、接入Mi Push或者优化后台策略,都能有效解决小米设备上的推送问题。

内容的提问来源于stack exchange,提问作者Rakesh L

火山引擎 最新活动