我正在尝试在我的Android应用程序中使用GCM服务。为此,我使用了http://developer.android.com/guide/google/gcm/gcm.html中的android文档我使用发件人ID等创建了客户端注册过程,并在服务器端应用程序中使用注册ID和发件人ID发送消息。当我通过Eclipse在我的手机中安装应用程序时,推送通知工作正常,所以我的发件人ID是正确的。然后,当我使用Eclipse导出apk文件并将其安装到我的手机中时,我收到SenderId错误的错误消息MissmatchedSenderId任何人都知道为什么我得到这个。我已经阅读了那些主题:Why
我正在开发一个phonegap应用程序并关注this实现PushPlugin的教程。但是,它表示每次触发deviceready事件时都要注册该应用程序。这意味着它会在GCM上注册设备,即使它之前已经注册过。这让我有点不舒服,因为这似乎不是一个好的做法,因为设备已经注册了,所以,我决定来这里问问。这是一个好习惯吗?如果不是,为什么?这是否有一些长期并发症? 最佳答案 在我们的应用程序中,出于以下几个原因,我们发现这是一种很好的做法:用于注册设备的API会返回代表该设备的token。据我所知,GCM不保证token将无限期地保持有效。因
我有一个应用程序,我想在其中构建2个不同的流程:1.a应用在任何Activity中都是开放的1.b应用程序显示一个提醒框,用户可以在其中选择转到与通知相关的Activity或停留在当前Activity。2.aApp在后台运行2.b通知栏中的通知,启动与通知相关的Activity。我目前有流程2工作,但无法找到如何让流程1工作。这是一些代码:在GcmIntentService中:@OverrideprotectedvoidonHandleIntent(Intentintent){Bundleextras=intent.getExtras();GoogleCloudMessaginggcm
我正在尝试使用以下代码发送推送通知:Messagemessage=newMessage.Builder().addData("appName",appData.name).addData("message",pushData.message).build();在接收端我的代码是:Stringmessage=intent.getStringExtra("message");当消息是英文、拉丁字符集时,一切正常。但是,当我尝试使用其他语言或字符ç时,它们会以问号形式出现或从字符串中删除。注意:它是用utf-8编码的 最佳答案 Java服
有没有办法在开始GCM注册程序API8之前检查用户是否在他的设备上添加了他的谷歌帐户?当尝试在没有它的情况下注册时,应用程序会在关闭时发出意外停止的警告,所以首先要检查,提醒用户并关闭应用程序。 最佳答案 我查看了checkDevice()的源代码,据我所知,它只检查API级别并且gcm包在设备上。因此,根据CommonsWare的建议,这段代码似乎可以帮我完成这项工作:privatebooleandeviceHasGoogleAccount(){AccountManageraccMan=AccountManager.get(thi
我尝试在我的Android设备上使用GCM发送通知,但我总是收到InvalidRegistration错误。这是应该发送通知的PHP代码:'TestMessage','title'=>'TestTitle','subtitle'=>'TestSubtitle','tickerText'=>'TestTicker','vibrate'=>1,'sound'=>1,'largeIcon'=>'large_icon','smallIcon'=>'small_icon');$fields=array('registration_ids'=>$registrationIds,'data'=>$m
我尝试使用GoogleGCM发送推送通知。但是得到一个WebException,表明远程服务器返回401unautorized。我不知道为什么它不起作用。有人知道为什么它不起作用吗?这是我的代码:ServicePointManager.ServerCertificateValidationCallback+=newRemoteCertificateValidationCallback(ValidateServerCertificate);HttpWebRequestRequest=(HttpWebRequest)WebRequest.Create("https://android.go
我已经为Android安装了最新的支持库包。但是我无法使用ionic/cordova(第一次构建)编译我的新应用程序,并且出现以下错误:TR:~/Documents/bitron/B-Seetommaso$ionicrun--deviceandroidRunningcommand:/Users/webdev1/Documents/bitron/B-See/hooks/after_prepare/010_add_platform_class.js/Users/webdev1/Documents/bitron/B-Seeaddtobodyclass:platform-androidRunn
我有一个依赖GCM推送通知的Android应用程序,有时,用户的设备会停止接收推送通知。这种行为是间歇性的:在某些设备上,它永远不会失败,只会持续工作数周或数月,而在其他设备上,它会工作几天,然后随机停止接收推送。每次设备停止工作时,我都会验证设备是否具有来自GCM的有效regId,并且我的服务器正在向该regId发送推送。但是,日志显示设备没有收到任何东西。以下是正常推送接收的日志:05-1510:39:21.091:V/GCMBroadcastReceiver(13766):onReceive:com.google.android.c2dm.intent.RECEIVE05-151
我写了一个类,用于对任意数据进行解密和加密。它是这样工作的:因为AndroidKeyStore生成的AESkey在卸载应用程序后“丢失”,我们有一个公钥/私钥对,其中公钥包含在应用程序中。出于失败保存的目的,它用于加密AESkey,该key沿着IV填充在每个加密消息的前面。这样我们就可以用我们的私钥恢复AESkey在单元测试中,我发现它适用于大多数输入。奇怪的是,在某些字节数组长度上它失败了(我发现即81920、131073。)这是AESCrypto代码:packagecom.mycompany.appname.crypto;importandroid.content.Context;