android c2dm 注册,android-C2DM重试注册权限被拒绝

非常感谢您提供有关如何解决重试注册事件中此权限拒绝错误的任何想法.

Permission Denial: broadcasting Intent { act=com.google.android.c2dm.intent.RETRY flg=0x4 (has extras) } from com.my.package (pid=-1, uid=10041) requires com.google.android.c2dm.permission.SEND due to receiver com.my.package/com.google.android.c2dm.C2DMBroadcastReceiver

表现

android:protectionLevel="signature" />

android:label="@string/app_name">

android:permission="com.google.android.c2dm.permission.SEND">

...

设置重试的代码

if ("SERVICE_NOT_AVAILABLE".equals(error)) {

long backoffTimeMs = C2DMessaging.getBackoff(context);

Log.d(TAG, "Scheduling registration retry, backoff = " + backoffTimeMs);

Intent retryIntent = new Intent(C2DM_RETRY);

PendingIntent retryPIntent = PendingIntent.getBroadcast(context,

0 /*requestCode*/, retryIntent, 0 /*flags*/);

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

am.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + backoffTimeMs,

retryPIntent);

// Next retry should wait longer.

backoffTimeMs *= 2;

C2DMessaging.setBackoff(context, backoffTimeMs);

}

一切对第一次使用的注册都是有益的!

解决方法:

问题解决了

我在清单中为重试事件需要单独的接收者声明

android:permission="com.google.android.c2dm.permission.SEND">

现在一切都很好,尽管我不明白为什么这可以解决明显的问题!

标签:android-c2dm,android

来源: https://codeday.me/bug/20191102/1988910.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值