AndroidでC2DMを実装しようとしています。 C2DM Serverに登録した後、登録コードを取得することができます。しかし、サードパーティのサーバーからメッセージを送信すると、メッセージ "メッセージ送信"とエラーコード200がログに表示されます。これは、サードパーティのサーバーがメッセージを正常に送信したことを意味します。私の問題は、私はデバイスでメッセージを受信することができないことです。AndroidでC2DMを実装する方法
0
A
答えて
0
このブログhttp://www.tomasmalmsten.com/tag/c2dm/は、アンドロイドのc2dmを稼働させるのに優れています。
0
function googleAuthenticate($username, $password, $source="Company-AppName-Version", $service="ac2dm"){
$ch = curl_init();
if(!$ch){
return false;
}
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
$post_fields = "accountType=" . urlencode('HOSTED_OR_GOOGLE')
. "&Email=" . urlencode($username)
. "&Passwd=" . urlencode($password)
. "&source=" . urlencode($source)
. "&service=" . urlencode($service);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
if (strpos($response, '200 OK') === false) {
return false;
}
// find the auth code
preg_match("/(Auth=)([\w|-]+)/", $response, $matches);
if (!$matches[2]) {
return false;
}
return $matches[2];
}
// send message to android, The message size limit is 1024 bytes in android
function c2dmSendMessageToPhone($authCode, $deviceRegistrationId, $msgType, $messageText,$extraArr) {
$headers = array('Authorization: GoogleLogin auth=' . $authCode);
$data1 = array(
'registration_id' => $deviceRegistrationId,
'collapse_key' => $msgType,
'data.msg' => $messageText
);
$data2 = array();
// append 'data' string in key of the array
if(!empty($extraArr)){
foreach($extraArr as $k => $v){
$data2['data.'.$k] = $v;
unset($extraArr[$k]);
}
}
$data = array_merge($data1,$data2);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
if ($headers)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
0
チェックC2DM Implementation Checklist Step by Step
は、コーディングの前に1つの物事を含め、このポスト。 2 Android App(クライアント側)。 3サーバー側:get ClientLoginなど。このトピックにでチューニング4ノート
0
誰もがGoogleの変化に注意する必要があります。
C2DMが廃止されており、Google Cloud Messaging for Android (GCM)に置き換えられました。 Googleの声明:
Important: C2DM has been officially deprecated as of June 26, 2012.
This means that C2DM has stopped accepting new users and quota requests.
No new features will be added to C2DM. However, apps using C2DM will continue to work.
Existing C2DM developers are encouraged to migrate to the new version of C2DM,
called Google Cloud Messaging for Android (GCM).
See the C2DM-to-GCM Migration document for more information.
Developers must use GCM for new development.
C2DMからmigrationためdemo app tutorial for GCMもがあります。
関連する問題
- 1. C2DMをAndroidに正しく実装する方法は?
- 2. アンドロイドでC2DMを実装する方法は?
- 3. Androidでカスタムシェイダーを実装する方法
- 4. Androidでバックグラウンドタスクを実装する方法
- 5. androidでonMenuItemClickListenerを実装する方法
- 6. アンドロイドでC2DMを使用してプッシュ通知を実装する方法は?
- 7. androidのファイルアップロードプログレスバーを実装する方法
- 8. Android:テンキーパッドの実装方法
- 9. AndroidスタジオでシングルトンパターンでBitmapFactoryを実装する方法は?
- 10. 非常に簡単な方法でAndroidのC2DMを使用する方法
- 11. Androidで水平ビューポケットベルを実装する方法
- 12. Android OpenGL ESのキューブでカラーピッキングを実装する方法
- 13. AndroidでShinx音声認識APIを実装する方法
- 14. Androidのメニュー項目で動的値を実装する方法
- 15. androidでメディエーション広告を実装する方法
- 16. AndroidアプリケーションでSQLiteを実装する方法は?
- 17. Androidで画像歪み効果を実装する方法
- 18. モバイルプラットフォーム(android、ios、symbian)でh.264エンコーダを実装する方法
- 19. 別ファイルのスレッドからAndroidでハンドラーを実装する方法
- 20. Java(Android)で「サーバー」クラスを実装する最善の方法
- 21. AndroidでListViewのキャッシュを実装する方法
- 22. Androidで無限のHorizontalScrollViewを実装する方法
- 23. 大きなスクロールバーをAndroidで実装する方法
- 24. Androidで簡単なチャットクライアントを実装する方法は?
- 25. Androidで検索機能を実装する方法は?
- 26. Xamarin C#AndroidでCountDownTimerクラスを実装する方法は?
- 27. Androidで時間を実装する方法
- 28. androidでサービスを実装する適切な方法
- 29. Androidでメモリイメージキャッシュを実装する方法は?
- 30. カスタムビューでFrameLayoutを実装する方法 - android
このコードは本当に有益です。 – parmil86