Articles of google cloud messaging

PARSE:推送通知“deviceToken”未定义

这是Parse控制台上我的安装页面中的情况: 如您所见,某些设备具有“deviceToken”,而某些设备没有“deviceToken”。 这并不好,因为每个设备都应该有deviceToken才能工作。 这怎么可能? 这是一个严重的问题,因为那些没有deviceToken的人不会收到推送通知! 我已经按照Parse.com上的所有说明进行操作,即使在他们的空白项目的帮助下,也可以在网络上的各种问题的帮助下实现他们所说的一切。 但没有解决我的问题,现在我无能为力。 我唯一能想到的是,在我的应用程序(已经在商店中)之前使用Google Cloud Messaging然后使用这个新的更新我决定更改系统并使用Parse删除完全GCM系统。 这两个系统之间可能存在冲突吗? 我需要解决这个问题,因为你可以想象这是一个严重的错误,现在我的3/4用户都没有收到推送通知。 如果你下载应用程序并安装它:一切都很好,deviceToken是好的。 如果您更新应用程序,因为设备上已存在GCM版本: 有些设备在Parse中注册好,没有任何问题 有些设备在Parse中注册但没有 deviceToken 对于没有deviceToken的设备,我尝试过很多东西:手动插入deviceToken,卸载并重新安装应用程序,删除Parse上的特定行等。但没什么好处……仍然面临这个问题。 我的代码 Application.java public class Application extends android.app.Application { public Application() { } @Override public void onCreate() { super.onCreate(); // Initialize the Parse SDK. Parse.initialize(this, “x”, “x”); // Specify an Activity to handle all pushes by default. PushService.setDefaultPushCallback(this, […]

当应用未运行时,Android通知未显示其内容

这是我有趣的问题。 当应用未运行时,来自GCM的Android通知未显示标题和内容( 仅显示应用名称,并在单击时打开MainActivity)。 但是当应用程序打开时,它会成功显示标题和内容。 可能是什么问题? 它运行没有问题,我没有改变任何东西。 表现: GcmService.java: import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.NotificationCompat; import android.text.TextUtils; import android.util.Log; import com.google.android.gms.gcm.GcmListenerService; import com.package.xxx.Activity.ReadNormal; import com.package.xxx.R; public class GcmService extends GcmListenerService { public GcmService() { } @Override public void onMessageReceived(String from, Bundle data) { Log.d(“GCMService”, data.toString()); String type = data.getString(“type”, “”); […]

clear最近的应用程序擦除应用程序内存,我的接收器停止工作

如果在背景中,MyApp的Receiver工作正常,那就是: public class MySmsReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println(“triggered sms”); if(intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) { Toast.makeText(context, “message Received”, Toast.LENGHT_SHORT).show(); } } 我的接收器清单文件是 文件说,如果我在清单文件中声明一个接收器,它应该始终有效。 但就我而言,它不是…… 但每当我通过刷它清除我最近的应用程序时它就停止了工作。 在我去任务管理员后看到MyApps强制停止如下所示 我想出了一些应用程序,如watsapp和fb总是留在内存中说这个bcoz刷完清楚的最近的应用程序仍然任务管理器有如下所示的跟随状态 和 我怎么能这样做到我的应用程序..什么会使我的应用程序像其他第三方应用程序,如watspp和Facebook …我怎么能让我的应用程序在内存总是我问这个然后只有我的接收器将始终工作..如果我错了,请给我一个解决方案来做到这一点…… 我一直在搜索这个问题但仍然无法find解决方案…我错了吗? 还是真的有办法做到这一点? 请有人帮助我……这让我一周了! 希望我在这里解释我的问题,如果我不问我,我会立即给你答复。

共享库项目的清单服务和权限

我想开发一个由GCMIntentService组成的库项目,它执行GCM注册过程并接收通过GCM发送的消息。 我已经使用AIDL将我的库项目服务暴露给宿主应用程序,但我还需要在应用程序项目中声明服务…..我怎样才能避免这种情况? 此外,我还需要在应用程序清单中声明GCM所需的所有权限。 是否有任何方法可以从主机应用程序中引用库项目的所有权限和服务,而无需在清单中再次声明它们? 我搜索过这个并发现: 1. 是否可以在Android框架(库)中封装权限 这清楚地表明我想要实现的目标是不可能的。 2.有用的库项目清单文件是否合并? @Hayes Haugen的回答说“在ADT工具的第20版中支持AndroidManifest.xml合并” 我正在使用ADT版本20.0.3 无论如何我可以实现提供GCM集成的库项目吗?

Firebase云消息传递API密钥

有哪些方法可以在Firebase控制台中重新生成FCM的API密钥(云消息传递部分)? 密钥不可编辑,与Google API控制台中自动生成的密钥不同。 由于这种错误配置,我总是从FCM获得未经授权的401 …

GCM令牌何时到期以及什么是InstanceID?

由于GCM不断更新,我搜索过的大部分资源似乎已经过时或不清楚。 基本上,我对令牌和ID过期时感到困惑。 (供参考,我正在使用Android。) 根据我的理解(如果我错了请纠正我),我的服务器有一个API密钥和一个发件人ID。 使用发件人ID我可以通过本地存储在客户端上的InstanceID让我的客户端请求令牌。 我在这里已经有点困惑了。 我的应用程序上线时会分配InstanceID吗? 它有变化吗? 应用程序升级或卸载并重新安装(或设备恢复)时怎么办? 通过调用InstanceID.getInstance,我总是会检索相同的InstanceID,还是最终会过期并给我一个新的? 通过调用getID()存储您检索的字符串是否有任何值? 文档似乎表明你在调用getID()时实际上检索了一个新的InstanceID,这样就会使事情复杂化。 (供参考,我指的是: https : //developers.google.com/instance-id/ ) 使用InstanceID,我的客户端可以从GCM服务器请求令牌,然后将其发送到我的应用服务器。 我的应用服务器存储此令牌,并可以使用它来向GCM服务器发送消息,然后GCM服务器将消息发送到设备。 我相信,设备使用存储的InstanceID来实际接收这些消息。 因此,拥有一个扩展GcmListenerService的类将允许我使用onMessageReceived接收这些消息? 我不需要做任何特别的事情(除了在AndroidManifest中定义它)? 我不必实际告诉它使用InstanceID? 它只是神奇地知道吗? 这些ID和令牌什么时候到期? 它们会过期吗? 我将令牌作为字符串存储在服务器上,但如果其中任何一个到期,我怎么知道它们已经过期了? 我总是可以生成一个新的InstanceID和Token,这看起来很简单,但是旧的那些会保持活跃吗? 如何从服务器擦除旧令牌? 在iOS方面,似乎有一种简单的方法可以使用APNS来执行此操作,您可以在其中检索所有过期令牌的列表,只需从数据库中擦除它们即可。

单击“通知”是否未启动预期活动?

我在我的应用程序中使用GCM,并且每当收到GCM消息时也使用NotificationManager创建通知。现在一切正常,GCM消息在通知区域正确显示,但是当我点击通知时它应该启动一个活动我的应用程序将显示未发生的消息详细信息。 每次我点击通知它都不会启动任何活动,它保持原样。我创建通知的代码是: private void sendNotification(String msg) { SharedPreferences prefs = getSharedPreferences( DataAccessServer.PREFS_NAME, MODE_PRIVATE); mNotificationManager = (NotificationManager) this .getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(this, WarningDetails.class); Bundle bundle = new Bundle(); bundle.putString(“warning”, msg); bundle.putInt(“warningId”, NOTIFICATION_ID); intent.putExtras(bundle); // The stack builder object will contain an artificial back stack for // the // started Activity. // This ensures that […]

GCM的API密钥突然无效? 未经授权(401)错误

我为我的Android应用程序创建了一个用于GCM推送通知的Android API密钥。从过去两天开始,GCM服务器在PHP中返回Unauthorized(401)响应。 Android API密钥是否有任何原因无效/过期? 或者GCM是否弃用了Android API密钥? 我还没有得到关于为什么Android API密钥无效的正确解释? 他们中的大多数人更喜欢使用服务器密钥而不是GCM的Android API密钥,但没有提到为什么不使用Android API密钥。 为什么不在GCM中使用Android API Key? Android API密钥有任何限制吗? 或者,如果通知消息超过每日限制,GCM服务器是否会阻止通知/ GCM服务器使Android API密钥无效?

在通知Android中加载来自url的图片

在我的Android应用程序中,我想动态设置通知图标,这些图标将从URL加载。 为此,我在receiver使用了NotificationBuilder的setLargeIcon属性。我提到了许多链接,但尝试了各种解决方案,但无法获得所需的输出。 虽然我从url下载了该图像并在通知中设置了该位图,但它没有显示,而是将setSmallIcon图像显示为大图标。 我不知道我哪里出错了。 我在这里发布我的代码。 请帮我解决这个问题。 谢谢。 码: @SuppressLint(“NewApi”) public class C2DMMessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (“com.google.android.c2dm.intent.RECEIVE”.equals(action)) { Log.e(“C2DM”, “received message”); final String fullName = intent.getStringExtra(“message”); final String payload1 = intent.getStringExtra(“message1”); final String payload2 = intent.getStringExtra(“message2”); final String userImage = intent.getStringExtra(“userImage”); Log.e(“userImage Url […]

是否有任何理由继续使用IntentService来处理GCM消息?

如你所知,最近Google改变了他们的GCM文档,他们声称不再需要IntentService来处理到达的GCM消息。 所有的处理都可以在BroadcastReceiver完成。 当试图找出是否有任何充分的理由继续使用IntentService ,我遇到了这个引用 : WakefulBroadcastReceiver处理GCM消息的服务(通常是IntentService),同时确保设备不会在进程中回到睡眠状态。 包括一个IntentService是可选的 – 你可以select在一个普通的BroadcastReceiver中处理你的消息, 但实际上,大多数应用程序将使用一个IntentService 。 为什么大多数应用程序使用IntentService ? 在BroadcastReceiver直接处理GCM消息的情况是否有效?