安卓设备的 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 推送通知不适用于 iOS