Java tutorial
package com.localhost.bracelet; /** * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.NotificationCompat; import android.util.Log; import android.widget.Toast; import com.google.android.gms.gcm.GcmListenerService; public class MyGcmListenerService extends GcmListenerService { //public static BluetoothLeService mBluetoothLeService; private static final String TAG = "MyGcmListenerService"; public final static String ACTION_GCM_MESSAGE_AVAILABLE = "com.example.android.bluetoothlegatt.ACTION_GCM_MESSAGE_AVAILABLE"; public final static String EXTRA_DATA = "com.example.android.bluetoothlegatt.EXTRA_DATA"; /** * Called when message is received. * * @param from SenderID of the sender. * @param data Data bundle containing message data as key/value pairs. * For Set of keys use data.keySet(). */ // [START receive_message] @Override public void onMessageReceived(String from, Bundle data) { String message = data.getString("message"); Log.d(TAG, "From: " + from); Log.d(TAG, "Message: " + message); /** * In some cases it may be useful to show a notification indicating to the user * that a message was received. */ //Log.w("gcm", "sending notification " + message); broadcastUpdate(ACTION_GCM_MESSAGE_AVAILABLE, message); sendNotification(message); // [END_EXCLUDE] } // [END receive_message] private void broadcastUpdate(final String action, final String data) { final Intent intent = new Intent(action); intent.putExtra(EXTRA_DATA, data); sendBroadcast(intent); } /** * Create and show a simple notification containing the received GCM message. * * @param message GCM message received. */ private void sendNotification(String message) { //Intent intent = new Intent(this, DeviceScanActivity.class); Intent intent = new Intent(this, DeviceControlActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 10 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher).setContentTitle("Bracelet Poke!").setContentText(message) .setAutoCancel(true).setSound(defaultSoundUri).setVibrate(new long[] { 0, 500 }) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE); notificationManager.notify(10 /* ID of notification */, notificationBuilder.build()); } }