安卓设备的 GCM 推送通知不适用于 MI 和乐视手机

Posted

技术标签:

【中文标题】安卓设备的 GCM 推送通知不适用于 MI 和乐视手机【英文标题】:GCM push notifications for android devices are not working on MI and Letv mobiles 【发布时间】:2017-04-10 09:27:30 【问题描述】:

我们在向所有安卓设备发送 GCM 推送通知时遇到了问题。我们正在 Ionic 平台上开发一个应用程序,并使用名为 cordova push 的插件来推送通知。设备正在向 gcm 注册并接收设备令牌。我正在使用 3 台设备来测试 Moto g4 plus、MI4 和 Letv。

问题是当应用程序被终止时,推送通知会到达 moto g4 plus 设备,而不是 MI 和 Letv 设备。 MI 和乐视设备也只有在应用程序处于前台或后台时才会收到通知。

我也收到了来自 gcm 的送货收据,该收据也已发送到应用被终止案例中的所有设备。

请提出一些解决方案来解决这个问题。谢谢你。

【问题讨论】:

【参考方案1】:

我也遇到过这个问题 我的小米手机需要“自动启动权限”才能在应用被终止时接收 FCM 通知,您需要在此列表中移动您的应用。

对于小米设备,您可以向用户请求此权限 Check the answer here

    String xiaomi = "Xiaomi";
    final String CALC_PACKAGE_NAME = "com.miui.securitycenter";
    final String CALC_PACKAGE_ACITIVITY = "com.miui.permcenter.autostart.AutoStartManagementActivity";
    if (deviceManufacturer.equalsIgnoreCase(xiaomi)) 
        DisplayUtils.showDialog(activity, "Ask for permission", new DialogInterface.OnClickListener() 
            @Override
            public void onClick(DialogInterface dialogInterface, int i) 
                try 
                    Intent intent = new Intent();
                    intent.setComponent(new ComponentName(CALC_PACKAGE_NAME, CALC_PACKAGE_ACITIVITY));
                    activity.startActivity(intent);
                 catch (ActivityNotFoundException e) 
                    Logger.e(TAG, "Failed to launch AutoStart Screen ", e);
                 catch (Exception e) 
                    Logger.e(TAG, "Failed to launch AutoStart Screen ", e);
                
            
        , new DialogInterface.OnClickListener() 
            @Override
            public void onClick(DialogInterface dialogInterface, int i) 

            
        );
    

关于乐视手机我还没有检查过。如果你解决了,请告诉我。

【讨论】:

我们写信给小米的一位非常资深的人。他恢复了他们手动将一些应用程序列入白名单的说法,默认情况下不允许其余应用程序访问通知文件夹。这是回应。 “这通常是因为可以访问通知文件夹的应用程序被列入白名单。这是一项确保用户免受垃圾邮件影响的功能,也有助于确保内存/电池使用优化。”我们询问了将应用列入白名单的流程,但没有得到回复。 @shyam 可以给我客户支持邮件,这样我就可以得到他们的确认,并能够说服我的客户。

以上是关于安卓设备的 GCM 推送通知不适用于 MI 和乐视手机的主要内容,如果未能解决你的问题,请参考以下文章

类似小米和乐视设备的提醒通知

GCM 推送通知不适用于 xamarin android

当应用程序处于非活动状态时,GCM 推送通知不适用于 iOS

当 3G 网络可用时,Android GCM 不适用于 wifi 网络

某些 android 设备未收到 GCM 推送通知

node-fcm:为所有设备发送推送通知