Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MessageReceivingService extends Service{
- private GoogleCloudMessaging gcm;
- public static SharedPreferences savedValues;
- public static void sendToApp(Bundle extras, Context context){
- Intent newIntent = new Intent();
- newIntent.setClass(context, MainActivity.class);
- newIntent.putExtras(extras);
- newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(newIntent);
- }
- public void onCreate(){
- super.onCreate();
- final String preferences = getString(R.string.preferences);
- savedValues = getSharedPreferences(preferences, Context.MODE_PRIVATE);
- // In later versions multi_process is no longer the default
- if(VERSION.SDK_INT > 9){
- savedValues = getSharedPreferences(preferences, Context.MODE_MULTI_PROCESS);
- }
- gcm = GoogleCloudMessaging.getInstance(getBaseContext());
- SharedPreferences savedValues = PreferenceManager.getDefaultSharedPreferences(this);
- if(savedValues.getBoolean(getString(R.string.first_launch), true)){
- register();
- SharedPreferences.Editor editor = savedValues.edit();
- editor.putBoolean(getString(R.string.first_launch), false);
- editor.commit();
- }
- // Let AndroidMobilePushApp know we have just initialized and there may be stored messages
- sendToApp(new Bundle(), this);
- }
- protected static void saveToLog(Bundle extras, Context context){
- SharedPreferences.Editor editor=savedValues.edit();
- String numOfMissedMessages = context.getString(R.string.num_of_missed_messages);
- int linesOfMessageCount = 0;
- for(String key : extras.keySet()){
- String line = String.format("%s=%s", key, extras.getString(key));
- editor.putString("MessageLine" + linesOfMessageCount, line);
- linesOfMessageCount++;
- }
- editor.putInt(context.getString(R.string.lines_of_message_count), linesOfMessageCount);
- editor.putInt(context.getString(R.string.lines_of_message_count), linesOfMessageCount);
- editor.putInt(numOfMissedMessages, savedValues.getInt(numOfMissedMessages, 0) + 1);
- editor.commit();
- postNotification(new Intent(context, MainActivity.class), context);
- }
- protected static void postNotification(Intent intentAction, Context context){
- final NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
- final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentAction, Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL);
- final Notification notification = new NotificationCompat.Builder(context)
- .setContentTitle("Message Received!")
- .setContentText("")
- .setContentIntent(pendingIntent)
- .setAutoCancel(true)
- .getNotification();
- mNotificationManager.notify(R.string.notification_number, notification);
- }
- private void register() {
- new AsyncTask(){
- protected Object doInBackground(final Object... params) {
- String token;
- try {
- token = gcm.register(getString(R.string.project_number));
- Log.e("registrationId-------------------->", token);
- }
- catch (IOException e) {
- Log.e("Registration Error-------------->", e.getMessage());
- }
- return true;
- }
- }.execute(null, null, null);
- }
- public IBinder onBind(Intent arg0) {
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement