Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110

Как открыть PUSH в активити?

08.04.2016, 01:10. Показов 1910. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть вопроса в том,что я не могу понять как по клику на Пуш,у человека открывалось MainActivity с полным пушем.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.developerhouse.push;
import com.google.android.gms.gcm.GcmListenerService;
 
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;
 
public class MyGcmListenerService extends GcmListenerService {
 
    public static final int MESSAGE_NOTIFICATION_ID = 435345;
    private NotificationManager mNotificationManager;
 
    @Override
    public void onMessageReceived(String from, Bundle data) {
        String message = data.getString("message");
 
        createNotification( message);
    }
        // Creates notification based on title and body received
    private void createNotification( String body) { 
        mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 
        Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        long[] pattern = {500};
 
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
              new Intent(this, MainActivity.class), 0);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
              this).setSmallIcon(R.drawable.notify)
              .setContentTitle("UrbanSide PUSH").setVibrate(pattern)
              .setStyle(new NotificationCompat.BigTextStyle().bigText(body))
              .setContentText(body)
        .setAutoCancel(true).setSound(sound);
 
        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.notify(MESSAGE_NOTIFICATION_ID, mBuilder.build());
 
 
 
    }
 
}
MainActivity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.developerhouse.push;
 
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
 
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.widget.Toast;
 
public class MainActivity extends Activity {
     private static final String TAG = "MainActivity";
  
    public static String newRegID="";
 
    private BroadcastReceiver mRegistrationBroadcastReceiver;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
        mRegistrationBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               
                SharedPreferences sharedPreferences =
                        PreferenceManager.getDefaultSharedPreferences(context);
                String sentToken = sharedPreferences
                        .getString(Constants.PREF_GCM_REG_ID, "");
                 if (sentToken.equals("")) {
                   Toast.makeText(MainActivity.this, "Failed to save on server", Toast.LENGTH_SHORT).show();
                } else {
                     Toast.makeText(MainActivity.this,  "Succesfully saved on server",  Toast.LENGTH_SHORT).show();
                }
            }
        }; 
        if (checkPlayServices()) {
 
            Intent intent = new Intent(this, RegistrationIntentService.class);
            startService(intent);
        }
      
    }
     @Override
        protected void onResume() {
            super.onResume();
            LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                    new IntentFilter(Constants.SERVER_SUCCESS));
        }
 
        @Override
        protected void onPause() {
            LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
            super.onPause();
        }
 
        private boolean checkPlayServices() {
            int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
            if (resultCode != ConnectionResult.SUCCESS) {
                if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
                    GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                            9000).show();
                } else {
                    Log.i(TAG, "This device is not supported.");
                    finish();
                }
                return false;
            }
            return true;
        }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2016, 01:10
Ответы с готовыми решениями:

Как открыть активити с фрагмента используя кнопку?
У меня есть tab activity в ней есть фрагменты, так же есть второе tab activity и мне нужно с фрагмента из первого активити перейти во...

Как с ListFragment передать имя файла чтобы открыть его в другом Активити?
Всем привет, я новичек! ломаю голову над такой задачей: Есть ListFragment со списком "приборов" мне надо при нажатии на нужный...

Как вызвать метод в активити классе из обычного не активити класса?
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

10
16 / 15 / 9
Регистрация: 08.04.2015
Сообщений: 36
08.04.2016, 10:08
Что то не понятно, какой полный пуш?
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
08.04.2016, 10:21  [ТС]
Я имею ввиду,чтобы если пуш не влез в строку уведомлений,чтобы его можно было весь вывести в активити.
0
16 / 15 / 9
Регистрация: 08.04.2015
Сообщений: 36
08.04.2016, 10:42
Лучший ответ Сообщение было отмечено Nasdomlan как решение

Решение

Nasdomlan, здесь только остается передаться с помощью putExtra информацию а в самом активити ее получить и показать.
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
08.04.2016, 11:00  [ТС]
urayatsko, хммм...попробую сообразить.Просто я в этом новичок,тяжело дается)
Хотя думаю что не выйдет)
Ибо не соображу как передавать это все именно по клику на активити то есть:
Приходит пуш -> нажимаем -> открывается активити с текстом пуша

Добавлено через 10 минут
Java
1
2
3
4
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("body", body);
 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
Посоветовали так,но все равно черный экран
0
16 / 15 / 9
Регистрация: 08.04.2015
Сообщений: 36
08.04.2016, 11:12
Лучший ответ Сообщение было отмечено Nasdomlan как решение

Решение

Nasdomlan, все получиться, переделаный ваш метод.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
       private void createNotification( String body) { 
        mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 
        Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        long[] pattern = {500};
 
        /*Сосздаем интент*/
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        /*передаем наш текст по ключю - text */
        intent.putExtra("text", body);
 
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
              intent, 0);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
              this).setSmallIcon(R.drawable.notify)
              .setContentTitle("UrbanSide PUSH").setVibrate(pattern)
              .setStyle(new NotificationCompat.BigTextStyle().bigText(body))
              .setContentText(body)
        .setAutoCancel(true).setSound(sound);
 
        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.notify(MESSAGE_NOTIFICATION_ID, mBuilder.build());
 
 
 
    }
Ну и в самом активити получаем данные.

Java
1
2
3
4
5
        Intent intent = getIntent();
       
        if(intent.getStringExtra("text")!=null){
                  String text = intent.getStringExtra("text");
        }
Добавлено через 4 минуты
Nasdomlan, напишите получилось или нет
1
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
08.04.2016, 11:16  [ТС]
Не хочет он его почему то в main активити подключать.
Я думаю,может проще например в класс ViewNotify его кинуть?У меня он как раз пустой...
0
16 / 15 / 9
Регистрация: 08.04.2015
Сообщений: 36
08.04.2016, 11:20
Активити открывается но ничего не передаеться?
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
08.04.2016, 11:22  [ТС]
Я просто честно не понял даже,как его к мейну подключить...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.developerhouse.push;
 
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
 
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.widget.Toast;
 
public class MainActivity extends Activity {
     private static final String TAG = "MainActivity";
  
    public static String newRegID="";
 
    private BroadcastReceiver mRegistrationBroadcastReceiver;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
        mRegistrationBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               
                SharedPreferences sharedPreferences =
                        PreferenceManager.getDefaultSharedPreferences(context);
                String sentToken = sharedPreferences
                        .getString(Constants.PREF_GCM_REG_ID, "");
                 if (sentToken.equals("")) {
                   Toast.makeText(MainActivity.this, "Failed to save on server", Toast.LENGTH_SHORT).show();
                } else {
                     Toast.makeText(MainActivity.this,  "Succesfully saved on server",  Toast.LENGTH_SHORT).show();
                }
            }
        }; 
        if (checkPlayServices()) {
 
            Intent intent = new Intent(this, RegistrationIntentService.class);
            startService(intent);
        }
      
    }
     @Override
        protected void onResume() {
            super.onResume();
            LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                    new IntentFilter(Constants.SERVER_SUCCESS));
        }
 
        @Override
        protected void onPause() {
            LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
            super.onPause();
        }
 
        private boolean checkPlayServices() {
            int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
            if (resultCode != ConnectionResult.SUCCESS) {
                if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
                    GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                            9000).show();
                } else {
                    Log.i(TAG, "This device is not supported.");
                    finish();
                }
                return false;
            }
            return true;
        }
        
}
Я понимаю,что туплю по страшному,но если не задавать вопросы,сложно что то выучить)
0
16 / 15 / 9
Регистрация: 08.04.2015
Сообщений: 36
08.04.2016, 11:28
Нам нужно в методе onCreate получить данные из Intent.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
         /*Это по сути все что нужно добавить в Активити*/
         Intent myIntent = getIntent();
        if(intent.getStringExtra("text")!=null){
                  String text = intent.getStringExtra("text");
        }
 
        mRegistrationBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               
                SharedPreferences sharedPreferences =
                        PreferenceManager.getDefaultSharedPreferences(context);
                String sentToken = sharedPreferences
                        .getString(Constants.PREF_GCM_REG_ID, "");
                 if (sentToken.equals("")) {
                   Toast.makeText(MainActivity.this, "Failed to save on server", Toast.LENGTH_SHORT).show();
                } else {
                     Toast.makeText(MainActivity.this,  "Succesfully saved on server",  Toast.LENGTH_SHORT).show();
                }
            }
        }; 
        if (checkPlayServices()) {
 
            Intent intent = new Intent(this, RegistrationIntentService.class);
            startService(intent);
        }
      
    }
1
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
08.04.2016, 11:50  [ТС]
intent cannot be resolved
MainActivity.java /AndroidPush/src/com/developerhouse/push line 33
Вот такое получаю...

Добавлено через 15 минут
Заменил на myIntent как советовал Eclipse, теперь при клике на пуш даже пустая активность не открывается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.04.2016, 11:50
Помогаю со студенческими работами здесь

Открыть второе активити
Я перехожу с ативити MainActivity в LastActivity так: package com.example.serg.myapplication; import android.app.Activity; ...

Открыть второй активити
Раньше проблем с открытием второго активити через нажатие на кнопку не было. Создал xml, class, в манифесте прописал. Что-то упустил?

Открыть картинку в новом активити
Приветствую уважаемые разрабы. Сразу извиняюсь если написал не в той ветке. Задача такая : есть 2 бланка активити : на первом несколько...

Открыть активити не из главного класса
привет всем. ситуация такая: есть класс (обычный класс с методами) в котором в потоке допустим выполняются какие-либо действия. и в...

Открыть старое активити при клике на уведомление
Добрый день. Есть такая штука: создается уведомление, оно появляется, при этом приложение по сути закрывается finish(); Далее при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru