2012-04-11 64 views
0

我嘗試註冊到C2DM,但它不起作用。我在我的項目中包含了com.google.android.c2dm。當我試圖找到com.google.android.c2dm.intent.REGISTER,它並沒有發現什麼:不能使用C2DM意圖(android)

String action = "com.google.android.c2dm.intent.REGISTER"; 
final PackageManager packageManager = context.getPackageManager(); 
final Intent intent = new Intent(action); 
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); 

list.size()給0。任何想法?

編輯:畝清單文件包含校正權限:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
+0

你在2.1設備上嗎? C2DM適用於2.2及更高版本。 – petey 2012-04-11 15:19:50

+0

我開發的2.2和更高版本 – Alexis 2012-04-11 19:22:42

回答

0

你需要確保你在你的清單文件中com.google.android.c2dm.permission.RECEIVE權限。

另外,我實現了註冊使用以下樣板

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER"); 
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); 
registrationIntent.putExtra("sender", emailOfSender); 
startService(registrationIntent); 

您可以參考the full docs的基本設置。

+0

編輯的問題。我使用相同的代碼,但它當然會觸發錯誤:SERVICE_NOT_AVAILABLE – Alexis 2012-04-11 15:14:16

+0

我假設你已經註冊了c2dm? http://code.google.com/intl/sv-SE/android/c2dm/signup.html另外谷歌提示,錯誤的意思是「設備無法讀取響應,或從服務器有500/503可以稍後重試,應用程序應該使用指數後退和重試。「 – Rob 2012-04-11 15:16:17

+0

是的,我已經註冊。我不知道我的註冊是否活動,但如果問題是我的帳戶,我想我會得到一個錯誤,如AUTHENTICATION_FAILED或INVALID_SENDER – Alexis 2012-04-12 06:43:21