Android 代码打开手机权限保证推送存活率

本文探讨了在Android应用中确保推送消息存活率的关键因素,包括检查和请求通知权限、避免电池优化限制、获取后台启动与自启动权限,以及检测并引导用户开启WiFi。通过这些优化措施,可以提高推送的到达率和应用在后台的活跃度。
摘要由CSDN通过智能技术生成

前文:相信很多开发者在项目中都使用到了极光推送,极光推送也是一个让我们又爱又恨的需求,如果项目中对推送依赖多点,就会发现各种问,比如推送后进行播报之类的,经常会收到反馈,过一会没推送播报了,黑屏一阵就没了,杀进程没了,这一类问题很坑,不是属于逻辑性问题,优化性难点也很大。以前在项目中遇到过这一类的坑,如果不开VIP,推送的送达率没保证,不对接厂商,是没法在进程杀死的情况下进行接收推送的。

在排除掉外界元素外,公司只愿意用免费的,那只能我们尽力去处理了,首先逻辑没问题,那就在权限上做优化,都知道Android权限需要动态申请,进程存活过久,因为手机系统的电池优化,黑屏后后台休眠之类的会导致APP不接收播报,在点亮后,全接收到了,对于这一类的,可以自己做检测,此处,写下本wolf在项目中遇到的坑,提供下需要检测的权限和需要检测的方法,各位可以在项目中加一个检测的功能。

1、通知权限

应用未开启通知权限,那后果就不用说了,检测与跳转方法如下,我封装了类方法。

  /**
     * 判断是否开启了通知权限 true 开启 false 未开启
     * @param context
     * @return
     */
  
    public static boolean isNotificationEnabled(Context context) {
        NotificationManagerCompat notification = NotificationManagerCompat.from(context);
        boolean isEnabled = notification.areNotificationsEnabled();
        return isEnabled;
    }

/**
     * 跳转到通知管理的界面,去手动开启
     * @param context
     */
    public static void intentToNotification(Context context){
        Intent localIntent = new Intent();
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (Build.VERSION.SDK_INT >= 9) {
            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
            localIntent.setData(Uri.fromParts("package", context.getPackageName(), null));
        } else if (Build.VERSION.SDK_INT <= 8) {
            localIntent.setAction(Intent.ACTION_VIEW);
            localIntent.setClassName("com.android.set
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值