Articles of google cloud messaging

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

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

使用AWS SNS向GCM发送仅通知有效内容

我正尝试通过AWS SNS向GCM发送移动推送通知。 根据最新的GCM 3.0文档 ,可以包括“通知”有效载荷或“数据”有效载荷(或两者)。 如果您发送通知有效内容,则GCM将负责为您显示最终用户设备上的通知。 使用亚马逊SNS控制台,我试图发送通知的有效载荷,但我遇到了以下错误: 无效参数:消息原因:协议GCM的无效通知:数据密钥需要在json消息中(服务:AmazonSNS;状态码:400;错误代码:InvalidParameter) 我正在发送: { "GCM":"{\"notification\":{\"title\":\"Test Message\"}}" } 我怀疑这可能是SNS仍然符合GCM的以前版本的问题,因此它期望一个“数据”键,但我不知道。 有没有其他人有类似的问题,或有任何经验呢? 谢谢! 编辑:为了澄清,我想发送一个通知有效载荷的GCM,并显示一个警告给用户自动按照文档中所述。 现在,我开始怀疑SNS是否将通知有效载荷转发给设备。

用于在Android中发送推送通知的协议

我想知道哪个协议是用来发送推送通知到Android设备和哪些发送推送通知请求到GCM。 无论是HTTP,HTTPS还是其他一些东西?

谷歌GCM的android崩溃(java.lang.NoClassDefFoundError:com.google.android.gms.R $string)

我正在开发一个应用程序使用谷歌GCM服务,它似乎是崩溃在启动所有的前棒棒糖设备..我跟随谷歌教程…及其工作在棒棒糖和棉花糖 这里是我的项目级依赖关系 dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.google.gms:google-services:1.5.0' } 我在我的应用程序级别的gradle文件中有这个 compile 'com.google.android.gms:play-services:8.4.0' 和这个 apply plugin: 'com.google.gms.google-services' 我也安装了Android清单..和相应的服务类,并在棉花糖设备上接收GCM。 我有这个错误。 E/AndroidRuntime: FATAL EXCEPTION: main Process: itcurves.driver, PID: 12788 java.lang.NoClassDefFoundError: com.google.android.gms.R$string at com.google.android.gms.measurement.zza.<init>(Unknown Source) at com.google.android.gms.measurement.zza.zzaR(Unknown Source) at com.google.android.gms.measurement.internal.zzn.zziJ(Unknown Source) at com.google.android.gms.measurement.internal.zzz.zza(Unknown Source) at com.google.android.gms.measurement.internal.zzw.<init>(Unknown Source) at com.google.android.gms.measurement.internal.zzaa.zzDj(Unknown Source) at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source) at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1591) at […]

Android:使用哪一个包名? Manifest的包名或Gradle applicationId?

我正在使用Android Studio版本2.1.2 ,并试图将Google云消息传递到我的应用程序。 为了做到这一点,我必须获得一个Google服务json文件(configuration文件)添加到我的项目。 为了从Google Api控制台面板获取此文件,我需要提供我的应用程序名称和我的应用程序包名称 。 这里是我的问题开始的地方。 在我的应用程序中, Manifest文件中的包名称与应用程序级别build.gradle文件中的applicationId不同 。 而在谷歌播放商店,applicationId正在使用。 为了说明我的意思,在我的Manifest文件中; <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> 并在我的gradle文件中; android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId 'com.menu.jkrk' minSdkVersion 16 targetSdkVersion 23 versionCode 3 versionName "1.0" } 现在,哪一个提供给谷歌作为包名来获取configuration文件? 其次,哪一个应该用于请求我的清单文件中的格式是C2D_MESSAGE的许可; <application-package-name> + ".permission.C2D_MESSAGE 谢谢你的帮助。

强制parsing推送通知使用PPNS而不是GCM

对于我们的Android应用,我们使用Parse Push(1.10.1)来发送通知。 但是,在中国(似乎没有GCM),似乎有一个很大的问题,那就是只有一小部分用户收到通知。 所以出于testing目的,我试图强制Parse使用PPNS而不是GCM,但是我总是在发送报告中出现“PPNS – 过期的设备”。 该帮助说,用户可能已经卸载了应用程序,但事实绝非如此。 到目前为止,我已经尝试禁用Manifest中的GcmBroadcastReceiver,并且还从Parse数据库(应该根据文档工作)中手动删除GCM PushType。 有人知道为什么当GCM被禁用时,设备被标记为“过期的设备”,以及我如何强制系统使用PPNS?

与GCM不同的口味

我有两个口味的应用程序,一个debugging和一个版本。 这些是不同口味的原因是我想让别人下载debugging版本来testing新function。 所以应该可以同时安装两个应用程序。 我的应用程序使用GCM,它已经在Android Lollipop的新安全function中产生了一些问题。 这是我得到一个味道安装时,并尝试安装其他味道: 失败[INSTALL_FAILED_DUPLICATE_PERMISSION perm = com.example.test.permission.C2D_MESSAGE pkg = com.example.test] 我试图通过将其添加到Android Manifest来更改debugging风格中的权限: <permission android:name="com.example.test.debug.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.test.debug.permission.C2D_MESSAGE" /> 但我仍然得到同样的错误。 有谁知道如何解决这个问题?

Android 4.x设备接收GCM消息,但Android 2.3设备不

我的android应用程序永远不会收到2.3设备上的GCM消息,但它在4.x设备上。 我可以成功注册所有设备(2.3和4.x)。 我认为这可能与这个问题有关 ,但似乎我有我的Android清单configuration正确。 任何人都可以看到我的IntentService和BroadcastReceiver,看看他们是否有任何问题? 任何帮助将不胜感激。 请注意,onHandeIntent()永远不会调用Android 2.3发送通知,而我有debugging器附加。 我检查了4.x设备,并且它们在onHandleIntent()中触发了debugging器。 谢谢! Android Manfest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.package" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="my.package.matchtracker.permission.C2D_MESSAGE" /> <permission android:name="my.package.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver […]

GCM:为什么我的应用程序崩溃在GCMRegistrar.checkDevice(this);

我有一个简单的应用程序几行,因为我想弄清楚为什么我真正的应用程序崩溃GCMRegistrar.checkDevice(这个)(如果我删除它,我的应用程序不会崩溃)。 谁能帮忙? :(: public class DemoActivity extends Activity { private String TAG = "** pushAndroidActivity **"; private TextView mDisplay; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this); setContentView(R.layout.main); mDisplay = (TextView) findViewById(R.id.display); mDisplay.setText("ciao"); } performance: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.registrazionegcm" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <permission android:name="com.example.registrazionegcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.registrazionegcm.permission.C2D_MESSAGE" /> <!– App […]

由于GCM SenderId Android无法生成APK版本

我在我的应用程序中实施了GCM(Google云消息传递)。 Google Play服务库有自动生成的values.xml ,其中我的senderId是: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="gcm_defaultSenderId">123</string> </resources> 问题是我有其他语言环境,并在应用程序释放Lint给我一个错误: Error:(3) Error: "gcm_defaultSenderId" is not translated in "fr" (French) [MissingTranslation] 因为它是自动生成的,所以我不能设置translable = false 。 我该如何解决这个问题?