标签: android-c2dm

未经许可Y不允许启动Intent X服务

04-25 14:16:30.931: E/AndroidRuntime(6638): FATAL EXCEPTION: main
04-25 14:16:30.931: E/AndroidRuntime(6638): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.exclusive26.igale/com.exclusive26.igale.Push_Activity}: java.lang.SecurityException: Not allowed to start service Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gsf (has extras) } without permission com.google.android.c2dm.permission.RECEIVE
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2553)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:2595)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.app.ActivityThread.access$2000(ActivityThread.java:121)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.os.Looper.loop(Looper.java:130)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at android.app.ActivityThread.main(ActivityThread.java:3701)
04-25 14:16:30.931: E/AndroidRuntime(6638):     at java.lang.reflect.Method.invokeNative(Native …
Run Code Online (Sandbox Code Playgroud)

service android android-intent android-c2dm

10
推荐指数
2
解决办法
8332
查看次数

Android C2DM:将消息复制到同一设备和应用程序

我想知道是否有人在使用谷歌C2DM时遇到过这个问题?这是我面临的情景:

  1. 用户安装应用程序并向C2DM服务器注册以获取注册密钥.
  2. 用户卸载该应用程序.
  3. 用户重新安装应用程序(并向C2DM服务器注册以获取新的注册密钥).

现在我从我的服务器向用户的手机发送消息,他们收到重复的消息.

任何人都可以了解这是预期的行为或我如何解决它?谢谢,

android android-c2dm

9
推荐指数
1
解决办法
2294
查看次数

Android推送通知服务中是否有推送通知服务?

我想为Android手机用户提供推送通知服务,Android推送通知服务是否有推送通知服务?

android push-notification android-c2dm

9
推荐指数
1
解决办法
1万
查看次数

Android中C2DM的一些查询

我目前正在开发一个具有C2DM实现的Android应用程序,并且我成功实现了它.但是现在我在向多个设备发送消息时遇到了问题.

根据我的理解,以下将是它的过程:

  1. 将reg reg id和authcode保存在数据库中(假设在c2dm表中)
  2. 使用循环向c2dm中的所有数据发送消息.

问题是:

每次我启动应用程序时它会要求注册并将其发送到服务器,因此,如果一个设备注册10次上述循环将失败9次并且工作一次,这将使非常大的数据库无效.

当我们想要使用我的应用程序向所有设备发送消息以及如何在数据库中保存reg_id和authcode时,有没有人知道什么是服务器端代码(我正在使用PHP).

谢谢

php android push-notification android-c2dm

9
推荐指数
1
解决办法
268
查看次数

我怎样才能获得我的注册ID设备

我需要为Android发送推送通知(比如iOS我需要一个设备udid来发送一个简单的推送)?

如果我需要获取我的设备的注册ID,我怎么能得到它?

谢谢.

android push-notification android-c2dm

9
推荐指数
1
解决办法
1万
查看次数

实施C2DM注册的最佳实践

我正在开发一个使用C2DM来接收推送通知的应用程序.我已经实现了整个C2DM电路(客户端和服务器),它工作正常.

目前,我的应用程序有一个按钮来引导C2DM注册,当从Google收到注册ID令牌时,我会在我的应用服务器中调用webservice以将设备与注册ID相关联.

我将在我的应用程序中实现身份验证,并且我有一些与C2DM注册处理相关的问题.

  1. 客户端应用程序(即Android版)将具有登录屏幕作为第一屏幕,因此用户可以输入凭证.一旦凭证得到验证,我就打算调用C2DM注册,以便用户与注册ID令牌相关联.这个可以吗?在以后的应用程序执行中,我可能会存储凭据或某种令牌,因此用户无需再次输入凭据,我是否还应该在应用程序启动时触发C2DM注册?
  2. 我知道Google最终可能会更新注册ID.定期更新注册ID是一种好习惯吗?如果是的话,什么时候应该合适?注册ID令牌是否过期?
  3. 在客户端和服务器之间的注册ID失去同步的罕见情况下会发生什么(例如,新的注册ID到达客户端,在具有旧注册ID的服务器上触发新事件的中间,然后注册ID到达服务器)?谷歌会处理这种情况吗?我的app服务器应该处理这种情况吗?
  4. 当新的注册ID从Google到达时,如果无法访问服务器会发生什么?我应该退避并安排警报再试一次吗?
  5. 你能想到其他任何陷阱吗?

android web-services android-c2dm

8
推荐指数
1
解决办法
2707
查看次数

Android - 在死线程上向处理程序发送消息,Toast错误

我正在使用C2DM服务,当我收到消息时,我也会收到错误"将消息发送到死线程上的处理程序",同时显示Toast消息,我希望看到消息到达.使用代码:

@Override
protected void onMessage(Context context, Intent intent) {
    Log.e("C2DM", "Message: arived");
    Bundle extras = intent.getExtras();
    if (extras != null) {
        //Toast.makeText(this.getApplicationContext(), (CharSequence) extras.get("payload"), Toast.LENGTH_LONG).show();

    }
}
Run Code Online (Sandbox Code Playgroud)

onMessage方法用于扩展的类中C2DMBaseReceiver.Toast messatge永远不会显示.

这里的错误是什么?有什么灵魂吗?

编辑:

09-06 08:59:02.135: WARN/MessageQueue(5654): Handler{44e65658} sending message to a Handler on a dead thread
09-06 08:59:02.135: WARN/MessageQueue(5654): java.lang.RuntimeException: Handler{44e65658} sending message to a Handler on a dead thread
09-06 08:59:02.135: WARN/MessageQueue(5654):     at android.os.MessageQueue.enqueueMessage(MessageQueue.java:179)
09-06 08:59:02.135: WARN/MessageQueue(5654):     at android.os.Handler.sendMessageAtTime(Handler.java:457)
09-06 08:59:02.135: WARN/MessageQueue(5654):     at android.os.Handler.sendMessageDelayed(Handler.java:430)
09-06 08:59:02.135: WARN/MessageQueue(5654):     at …
Run Code Online (Sandbox Code Playgroud)

android toast android-c2dm

8
推荐指数
2
解决办法
9555
查看次数

收到ID和身份验证令牌后发送邮件时出现c2dm 401错误

虽然有些问题被接受,但我看到了许多类似的问题,但没有很好的答案.我已注册C2DM.我收到了确认邮件.然后我写了一些简单的应用程序来注册C2DM.我得到了id(在模拟器和真实设备上试过).然后我获得了我用于C2DM注册的电子邮件的auth令牌(带卷曲)(我在app中用来获取id的电子邮件).
当我尝试执行推送(也使用curl)时,我收到401错误(就像auth令牌错误一样).

我阅读了很多教程,但我的想法已经不多了.

java android android-c2dm

8
推荐指数
1
解决办法
1683
查看次数

从广播接收器开始asynctask

我想知道从广播接收器启动asynctask是否被视为不良做法?我基本上注册了谷歌的C2DM服务器,然后当我拦截注册的广播接收器时,我想将它发送到我的服务器.

实现这个目标的最佳方法是什么?

android android-c2dm

8
推荐指数
1
解决办法
5648
查看次数

Google根据IP地址限制FCM服务,是否还有其他免费的Android推送通知提供商?

我开始使用FCM For Android写下一个简单的推送通知应用程序.但我在我的Android工作室日志中收到了这条消息.

signInWithCustomToken com.google.firebase.FirebaseException:发生内部错误.[伊朗不提供此服务.如果您认为原始国家/地区被错误识别,请通过https://support.google.com/websearch/contact/ip进行报告.]

当我使用VPN更改我的IP时,我的Android(客户端)应用程序正常工作[成功注册和登录和接收通知].

我的问题:除了强迫客户使用VPN之外,有没有办法在我的项目中使用FCM?如果没有为FCM提供免费和付费的其他替代方案,那么你可以为跨平台推送通知提供服务吗?[很明显,使用FCM/GCM服务作为第三方的公司,如Batch.com,Backendless,Pushwoosh不会做任何帮助]

免费,我的意思是少量用户(约1000 MAU)

编辑:正如AntoineGuénard所说,批量我的应用程序注册并获得令牌和认证没有任何问题,但只通过VPN接收测试通知.

在此输入图像描述

android push-notification android-c2dm firebase google-cloud-messaging

8
推荐指数
1
解决办法
2762
查看次数