在Android C2DM文档中有一个名为"TOO_MANY_REGISTRATIONS"的错误,他们将其描述如下:
用户注册的应用程序太多.应用程序应该告诉用户卸载其他一些应用程序,让用户手动重试.修复设备端.
它的真正含义是什么?它是否意味着有很多使用C2DM的应用程序在同一部手机上运行.如果有的话,有任何已知的应用程序数量的估计.
谢谢
我试图在我的Android应用程序中使用C2DM,但在我添加它之后我无法安装该应用程序.我收到此错误"安装错误:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED".但我看不出什么是错的.
谁知道我做错了什么?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="Wordy.Game"
android:versionCode="1"
android:versionName="0.1"
android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="8" />
<permission
android:name="Wordy.Game.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission
android:name="Wordy.Game.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<application android:label="@string/app_name" android:icon="@drawable/wordy">
<activity android:name="Main"
android:label="@string/app_name" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".C2DMRegistrationReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter >
<action android:name="com.google.android.c2dm.intent.REGISTRATION" >
</action>
<category android:name="Wordy.Game" />
</intent-filter>
</receiver>
<receiver
android:name=".C2DMRegistrationReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter >
<action android:name="com.google.android.c2dm.intent.RECEIVE" >
</action>
<category android:name="Wordy.Game" />
</intent-filter>
</receiver>
<activity android:name="Result" android:label="@string/app_name" …
Run Code Online (Sandbox Code Playgroud) 我按照http://developer.android.com/guide/google/gcm/gs.html上给出的步骤操作,每次尝试从我的设备注册时都会收到以下错误(在froyo上运行)
07-04 22:48:31.178:D/C2DMRegistrar(3880):[C2DMRegistrar.66]注册:http错误400
对于senderId,我尝试过使用projectID(根据Google),电子邮件ID和API密钥但没有效果.
我有Android市场并在设备上签署了谷歌帐户.
搜索有关如何使用GCM但使用PHP而不是servlet发送通知的一些信息,我发现:GCM与PHP(Google云消息传递)
我测试了这些问题的响应的工作代码,我也创建了一个用于浏览器应用程序的密钥(带有引用者),并且我给了这个ip的权限:.mywebsite.com /(te php文件在这个网址上:" http: //www.mywebsite.com/~jma/cHtml5/cap/kk.php ")
但我得到了这样的回应:未经授权的错误401
我做错了什么?
这是php文件:
<?php
// Replace with real server API key from Google APIs
$apiKey = "fictional key";
// Replace with real client registration IDs
$registrationIDs = array( "APA91asdasdSDGGS232S13S4213abGqiNhCIXKjlxrkUYe_xTgTacNGB5n16b380XDd8i_9HpKGRHkvm8DDet4_WK3zumjDEKkTRWLgPS7kO-BrKzWz7eWFQaDD9PJ8zA6hlSqL9_zH21P8K22ktGKmo_VIF6YAdU9ejJovrKBTpgQktYkBZBf9Zw","APAasdasd32423dADFG91bHYYxYB7bFiX5ltbJt6A-4MBiNg7l4RS4Bqf3jIfYviaaUfZ810XJo2o66DY9-jdeJk_JR8FIZCyrmCv-eu_WLkGZ8KaoHgEDR_16H2QPm98uHpe1MjKVXbzYc4J89WMmcIrl5tHhWQnIQNzaI6Zp6yyFUNUQ");
// Message to be sent
$message = "Test Notificación PHP";
// Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'registration_ids' => $registrationIDs,
'data' => array( "message" => $message ),
);
$headers = array(
'Authorization: key=' . $apiKey,
'Content-Type: application/json' …
Run Code Online (Sandbox Code Playgroud) php android push-notification android-c2dm google-cloud-messaging
所以我一直在关注Google的教程,在Android模拟器上设置GCM演示应用程序(http://developer.android.com/guide/google/gcm/demo.html).我让服务器端工作 - 我有一个tomcat服务器显示"没有设备注册!" 在GCM演示页面上.我在带有目标Google API的Android模拟器上安装了客户端应用程序(试图让GCM在一个目标4.1上运行,只是吐出"不幸的是,GCM Demo已停止"每次运行应用程序时) - 应用程序运行成功,但它无法连接到服务器注册设备(它经历了所有5次尝试).我确实将SERVER_URL,SENDER_ID和api.key编辑为正确的值(我已经按照教程的每一步) - 我在这里缺少什么?模拟器上的浏览器似乎也能正常工作.
编辑:固定网址到演示 - 尼克