デバイスからデバイスへの通知にGCMを使用する方法を簡単に理解できるリンク先を教えてください。サーバーと受信機としてデバイスを作るために必要なものデバイスをデバイスに送信するgcm通知
君たちは私の問題へのよりよい解決策を持っているかもしれませんが、私は私の要件を説明しましょう私は、他のユーザーができるボタンクリックで人々の1つのまたはグループに通知(事前定義されたメッセージ)を送信したい
同じことをする。
おかげ
デバイスからデバイスへの通知にGCMを使用する方法を簡単に理解できるリンク先を教えてください。サーバーと受信機としてデバイスを作るために必要なものデバイスをデバイスに送信するgcm通知
君たちは私の問題へのよりよい解決策を持っているかもしれませんが、私は私の要件を説明しましょう私は、他のユーザーができるボタンクリックで人々の1つのまたはグループに通知(事前定義されたメッセージ)を送信したい
同じことをする。
おかげ
は、私は基本的な作業 あなたは携帯電話の両方が接続サーバーを持っているサーバーと2つの携帯電話
ステップ1をneed-を説明してみましょう。
ステップ2あなたは、あなたがそこに新しいプロジェクトを作成し、プロジェクトにGCM APIを追加し、このlink
ステップ3では、Google Developersページに移動します。プロジェクトのsender_idを保存します。また、APIの資格情報を確認し、新しいブラウザキーを追加し、そのキーを保存します。
ステップ4プロジェクトにGCMを追加します。そのためには、Eclipseがインストールされているルートディレクトリに移動します。次に、フォルダextras/google/google-play-services/libsproject/
に移動し、そこにあるフォルダを別の場所にコピーします。その後、そのフォルダをEclipseのワークスペースにインポートし、そのプロパティを変更してライブラリにします。次に、これをあなたのアプリプロジェクトに追加します。
ステップ5モバイルをGCMに登録する必要があります。そのために、あなたはこの
// to start process
public void registerDevice() {
// TODO Auto-generated method stub
try {
if (checkPlayServices()) {
regid = getRegistrationId();
if (regid.isEmpty()) { // creating a new reg id
registerInBackground();
} else
saveid();
} else{
}
} catch (Exception e) {
}
}
// to create a new id
private void registerInBackground() {
// TODO Auto-generated method stub
try {
AsyncRegister logMeIn = new AsyncRegister("<you project id here>", context);
logMeIn.doneWith = this;
logMeIn.execute();
System.out.println("execute complete");
} catch (Exception e) {
}
}
// to fetch stored registration id
private String getRegistrationId() {
// TODO Auto-generated method stub
try {
int i=myPrefs.getInt("cuid", 0);
if(id!=i){
myPrefs.edit().putInt("cuid", id).commit();
int registeredVersion = myPrefs.getInt("appversion",
Integer.MIN_VALUE); // to check if app is updated
int currentVersion = getAppVersion();
if (registeredVersion != currentVersion) {
myPrefs.edit().putInt("appversion",currentVersion).commit();
}
return "";
}
String registrationId = myPrefs.getString("regid", "");
if (registrationId.isEmpty()) {
return "";
}
int registeredVersion = myPrefs.getInt("appversion",
Integer.MIN_VALUE); // to check if app is updated
int currentVersion = getAppVersion();
if (registeredVersion != currentVersion) {
myPrefs.edit().putInt("appversion", currentVersion).commit();
return "";
}
// when id is stored previously then this is called
return registrationId;
} catch (Exception e) {
}
}
//to fetch the current app version
private int getAppVersion() throws NameNotFoundException {
// TODO Auto-generated method stub
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(
context.getPackageName(), 0);
return packageInfo.versionCode;
}
// to check if play services are there on the device
private boolean checkPlayServices() {
// TODO Auto-generated method stub
try {
int resultCode = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(context);
if (resultCode != ConnectionResult.SUCCESS) {
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
toSend = new Bundle();
//tell user google play needs to be updated
} else {
//tell user their system does not support GCM
}
myPrefs.edit().putBoolean("support", false).commit();
return false;
}
myPrefs.edit().putBoolean("support", true).commit();
return true;
} catch (Exception e) {
}
}
ステップ6保存登録IDのようなサンプルコードで動作することができますし、それを保存するようにサーバーに渡します。
手順7ユーザーが[送信]ボタンをクリックすると、サーバーにメッセージを渡します。サーバーはDBに格納されているIDのリストを引き出し、それらのIDと共にGCMにメッセージをプッシュします。
ステップ8ここで、GCMは、そのメッセージが与えられたすべての電話機にそのメッセージを送信します。
ステップ9 GCMからテキストを受け取った受信者をアプリに追加して、それをユーザーに表示します。
これは簡単な説明です。これを詳細に理解したい場合は、オンラインチュートリアルをお読みください。それ以外の場合は、私のグループのテキスト(私のプロフィールの説明にあるリンク)を教えてください。私は喜んであなたを助けます。
String postData = "{ \"registration_ids\": [ \"" + OtherDeviceToken+ "\" ], " +
"\"delay_while_idle\": true, " +
"\"data\": {\"tickerText\":\"Your title\", "+
"\"contentTitle\":\"AppName\", " +
"\"message\": \" " + edtYourMessage.getText().toString() + "\"}}";
MediaType JSON= MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(JSON, postData);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://android.googleapis.com/gcm/send")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "key=" + SERVER_API_KEY)
.post(body)
.build();
okkhttp要求を実行します。
gcm https://developers.googleでデバイスグループを使用する必要があります。com/cloud-messaging/notifications#sending_upstream_messages_to_device_group_on_ios –
メッセージの送信は、送信するためにapiキーを公開する必要があるため、サーバー上でのみ行う必要があります。サーバーにメッセージを送信して、サーバーに作業をさせたいプッシュを示してください – tyczj