C2DM重试注册权限被拒绝

2024-03-03

非常感谢任何有关如何解决重试注册事件时的权限拒绝错误的想法。

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

manifest

    <uses-sdk android:minSdkVersion="8" />
    <permission android:name="com.my.package.permission.C2D_MESSAGE"
       android:protectionLevel="signature" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="com.google.android.c2dm.permission.SEND" />
    <uses-permission android:name="com.my.package.permission.C2D_MESSAGE" />
    <application android:name=".Sims3" android:icon="@drawable/icon"
         android:label="@string/app_name">
        <provider android:name=".QuizProvider" android:authorities="com.my.package.QuizModel"/>
        <service android:name=".C2DMReceiver" />
        <service android:enabled="true" android:name=".RegService" />
        <receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <!-- Receive the actual message -->
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <category android:name="com.my.package" />
            </intent-filter>
            <!-- Receive the registration id -->
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="com.my.package" />
            </intent-filter>
            <!-- Handle retry events -->
            <intent-filter>
               <action android:name="com.google.android.c2dm.intent.RETRY"/>
               <category android:name="com.my.package" />
            </intent-filter>
        </receiver>
...

设置重试的代码

    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);
    }

对于首次注册来说一切都很好!


问题解决了 我需要在清单中为重试事件单独的接收者声明

    <receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <!-- Receive the actual message -->
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.my.package" />
        </intent-filter>
        <!-- Receive the registration id -->
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.my.package" />
        </intent-filter>
    </receiver>
    <receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
        <!-- Handle retry events -->
        <intent-filter>
           <action android:name="com.google.android.c2dm.intent.RETRY"/>
           <category android:name="com.my.package" />
        </intent-filter>
    </receiver>

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C2DM重试注册权限被拒绝 的相关文章

  • 有关 paddingStart 使用的冲突 lint 消息

    API 17 RTL 支持发布后 我将以下内容添加到我的清单中 android supportsRtl true 这导致 Lint 在我的视图中有 paddingLeft Right 的地方正确地向我发出这些警告 考虑添加 android
  • 在Android内存中存储gif图像

    我对安卓还很陌生 我想将图像保存到内存中 然后从内存中检索图像并将其加载到图像视图中 我已使用以下代码成功将图像存储在内存中 void saveImage String fileName img cnt jpg File file new
  • Android-全屏视频视图

    我正在尝试使此 VideoView 以全屏模式显示 public class ViewVideo extends Activity private String filename private static final int INSER
  • Android:拍照后调用裁剪活动

    我在解析拍摄照片的 uri 来裁剪活动时遇到问题 在我的应用程序中 用户可以拍摄一张照片或从图库中选择一张照片 然后裁剪并上传 一切听起来都很简单 从图库中选择时 图库应用程序会返回所选照片的 uri 如下所示 content media
  • 有没有办法替代Android中的标准Log?

    有没有办法以某种方式拦截对 android 中标准 Log 的调用并执行其他操作 在桌面 Java 中 人们通常会得到一些记录器 因此有多种方法可以安装不同的日志处理程序 实现 但是 Android似乎对Log有静态调用 我找不到任何有关替
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • 无论如何,要控制宋何时选择Android.bp,何时不选择?

    使用新的构建系统 即 Soong 安卓取代Android mk with Android bp 还有 Android Q 及以上版本 Soong将选择所有Android bp文件 无论所有文件都存在于何处 早些时候 对于 2 级和 3 级模
  • 错误 libGL.so:无法使用 Android 模拟器打开共享对象文件

    我试图在 Ubuntu 12 04 64 位 中运行 android 模拟器 但是 我收到以下错误 Starting emulator for AVD emulatr Failed to load libGL so error libGL
  • 仅在 Android 应用程序中使用 XHDPI 可绘制对象?

    如果您计划在不久的将来支持 LDPI MDPI HPDI 或许还有 XHDPI 那么是否可以在项目中仅包含 XHDPI 可绘制对象并让设备将其缩放到所需的分辨率 我已经测试过在 Photoshop 中将可绘制对象的大小调整为 MDPI 和
  • Flutter Spotify Api 身份验证

    我需要在使用 Spotify api 的 Flutter 应用程序中对用户进行身份验证 我使用 flutter web auth 打开 WebView 并让用户在那里登录 我无法返回应用程序 在 Spotify 仪表板中 我将回调 Uri
  • Android 中带有透明背景的 ImageButton [重复]

    这个问题在这里已经有答案了 我已经按照这篇文章在android中制作ImageButton 安卓图像按钮 https stackoverflow com questions 2283444 android image button 图像出现
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • Android 26 (O) 通知不显示操作图标 [重复]

    这个问题在这里已经有答案了 随着 Android 26 O 引入通知渠道 我一直在调查 Google 提供的com example android notificationchannels 这个示例按预期工作 直到我尝试添加Action到示
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 如何在 Android 中保存 Edittext 中的文本而不丢失文本的粗体、斜体等功能

    我想做的就是从 Edittext 中获取文本 该文本具有粗体和斜体等功能 并将其保存在文本文件中 但是当我读回并显示它时 这些功能丢失了 它们不显示 如何通过将文本保存在文本文件或任何文件中来保持丰富的功能 您可以使用Html toHtml
  • Android:如何在布局中放置纯色矩形?

    我有一个可以很好地膨胀的relativelayout 我想在顶部添加一个跨越布局宽度的纯色矩形 我尝试将以下内容放入我的 xml 中
  • SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

    这两种方法有什么区别吗 两者都返回一个打开的 SQLiteDatabase 如果数据库不存在 两者都可以创建数据库 当需要读 写时 SQLiteOpenHelper 还具有 getWriteableDatabase 我应该使用哪种方法以及在
  • Android中绑定适配器有什么用?

    我一直在阅读有关Android中绑定适配器的文章 但我似乎不明白它 何时使用绑定适配器 有人可以用一个简单的例子来解释它吗 我读过的一篇文章在主活动中有一个绑定适配器 绑定适配器有一个参数 toastMessage 显然 只要 toastM

随机推荐

  • GitHub 页面未更新

    我在 GitHub 页面上遇到了一个奇怪的问题 我将新提交推送到我的个人页面maltzj github io http maltzj github io 但新文章没有出现在那里 当我在本地执行服务器时 帖子位于localhost 4000
  • 用于查找字符串中 URL 的正则表达式

    有谁知道我可以使用正则表达式来查找字符串中的 URL 我在 Google 上找到了很多用于确定整个字符串是否是 URL 的正则表达式 但我需要能够在整个字符串中搜索 URL 例如 我希望能够找到www google com and http
  • 想要将唯一值转换为第一/第二/第三变量

    我有一个数据集样本 需要转换为宽格式 但我有一个特定问题 尚未在 StackOveflow 上看到解决 我想用来制作长数据集的列对于每一行都有唯一的值 但我想创建一个新的数据集 以便每个 idvar 的 n 个属性有 n 个变量 我需要转换
  • 为什么删除( DictionaryInstance[ key ] );失败?

    我的应用程序使用字典 protected categoryToValueDict Dictionary new Dictionary 将某物映射到另一物 现在 在应用程序的某个时刻 我需要从Dictionary 我实现了这个简单的方法 pu
  • 从 id 列表中删除单引号

    我需要使用 API 调用的 id 列表附加 格式化 URL 但是 当我将列表放在 API 末尾时 https api twitter com 1 1 users lookup json user id s a 我只是得到一个空字符串作为响应
  • 具有身份 monad 的 Monad 转换器

    将 Monad 变压器与 Identity monad 一起使用而不是仅仅使用 标准 版本的变压器有什么意义 是不是更灵活 Back in mtl1 0 我们两者都有 newtype State s a State runState s g
  • 如何从 Windows Azure Active Directory 身份验证的 oauth2.0 身份验证中注销

    我们使用 oauth 2 0 进行 Windows Azure Active Directory 身份验证 其中执行身份验证 身份验证成功后 我们将重定向到我们的网站 为了注销网站 我们删除了网站上生成的所有 cookie 并再次重定向到
  • 如何让您拥有的现有域指向 Azure 的服务器?

    默认情况下 Azure 网站 Web 应用程序的命名约定是somesubdomain cloudapp net and somesubdomain azurewebsites net 如果我有一个目前通过 GoDaddy 托管的现有网站 并
  • 计算长数中设置的位数

    这个问题已得到解答here https stackoverflow com questions 34116205 count number of set bits in a long number 我的疑问是 以下方法 1 有效 但它的变体
  • 在 azure devops 中创建模板 git-repo

    我在 Azure DevOps 中有一个 git repo 我想将其用作启动新存储库的模板 但没有原始存储库的提交历史记录 GitHub 有这个不错的功能 https help github com en github creating c
  • WCF 服务在一段时间后自行终止

    我面临一个与托管 WCF 服务 NET Framework 4 IIS 7 Windows 2008 Standard SP2 相关的特殊问题 在我部署该服务后 它可以正常工作一段时间 然后通过抛出文件未找到异常而自行终止 下面给出了例外的
  • Rails 中随处可见的方法

    如何使这个在日志文件中输出黄线的方法可以从 Rails 应用程序中的任何位置 模型 控制器 视图 访问 def my log text file line text to s chomp gsub Rails logger debug sp
  • 如何快速检查字符串不为零?

    如果我声明一个String像这样 var date String 我想检查它是否是nil String或不 所以我尝试这样的事情 if date nil println It s not nil 但我收到一个错误 例如 Can not in
  • 使用 /dev/tcp 代替 wget

    为什么这有效 exec 3 lt gt dev tcp www google com 80 echo e GET HTTP 1 1 n n gt 3 cat lt 3 这失败了 echo e GET HTTP 1 1 n n gt dev
  • C++ 中的名称冲突

    在编写一些代码时我遇到了这个问题 include
  • MongoDB 文档说我的配置文件应该是 YAML。它不是。为什么?

    我正在使用 MongoDB 2 6 其中文档明确说明 http docs mongodb org manual reference configuration options 配置文件是 YAML 当我打开我的配置 etc mongod c
  • 未处理的承诺拒绝。此错误是由于抛出异步函数内部而引起的 - NodeJS

    我对 NodeJS 很陌生 我正在尝试创建一个与我的 mongoDB Atlas 数据库连接的简单服务器 但是当我运行我的服务器时 我收到此错误 UnhandledPromiseRejectionWarning 未处理的承诺拒绝 这 错误是
  • Retrofit 2.6.0 异常:java.lang.IllegalArgumentException:无法为 kotlinx.coroutines.Deferred 创建调用适配器

    我有一个使用 Kotlin 协程和 Retrofit 的项目 我有这些依赖项 implementation com squareup retrofit2 retrofit 2 5 0 implementation com squareup
  • EJB3 与数据访问对象

    我正在开发一个项目 我们需要决定如何公开我们的持久层 目前有两种选择 1 使用普通的 DAO 它们将实现一个接口并被注入 可能使用 Weld 到业务组件 即 EJB 中 在内部 他们将使用 JPA Hibernate 来实现持久性 2 不是
  • C2DM重试注册权限被拒绝

    非常感谢任何有关如何解决重试注册事件时的权限拒绝错误的想法 Permission Denial broadcasting Intent act com google android c2dm intent RETRY flg 0x4 has