Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
EduardSakh
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 51
1

Не видно уведомление во время работы приложения

05.08.2018, 17:09. Просмотров 260. Ответов 5
Метки нет (Все метки)

Я разрабатываю под андроид приложение для радиостанции.
Когда запускаю приложение,должно вверху выскакивать уведомление со значком станции и когда она работает в фоновом режиме должна быть занавеска на которой можно включить либо выключить приложение.
Раньше это всё работало,сейчас нет.
Вот кусок кода. Заранее спасибо.
Java
1
2
3
4
5
6
status = new Notification.Builder(this).build();
       status.contentView = views;
       status.flags = Notification.FLAG_ONGOING_EVENT;
       status.icon = R.drawable.radio;
       status.contentIntent = pendingIntent;
       startForeground(Const.FOREGROUND_SERVICE, status);
Может этот метод устарел уже и есть другие?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2018, 17:09
Ответы с готовыми решениями:

Coockie, хранение PHPSESSID во время работы приложения
Есть такой случай, есть скрипт на сервере, который добавляет коммент к посту, для того чтобы...

Не видно комментариев во время работы макроса
Если добавить комментарий к ячейке, и запустить макрос на бесконечное повторение (например раз в...

Ошибка во время работы приложения
Доброго времени суток. Во время работы приложения вылетает такая ошибка. Пробовал переустановить -...

Определить время работы приложения
помогите пожалуйста вывести время программы за которое оно работает #include <stdio.h> #include...

Блокировка ip во время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался ip например...

5
+1
328 / 161 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
06.08.2018, 07:37 2
Этого кода явно недостаточно для поиска проблемы
0
EduardSakh
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 51
06.08.2018, 23:55  [ТС] 3
Цитата Сообщение от +1 Посмотреть сообщение
Этого кода явно недостаточно для поиска проблемы
Вот весь код класса,в котором прописан сервис отвечающий за отоброжение приложения в шторке.
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package com.example.edisa.Services;
 
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews;
 
import com.example.edisa.Const;
import com.example.edisa.MainActivity;
import com.example.edisa.Media.Player;
import com.example.edisa.PlayerTaskManager;
import com.example.edisa.R;
 
/**
 * Created by edisa on 7/14/2018.
 */
 
public class NotificationService  extends Service{
    public static Context context;
    Notification status;
    boolean isPause = true;
 
    /**
     * This method shows the notification
     * @param pos
     */
 
   @TargetApi(Build.VERSION_CODES.LOLLIPOP)
   // @SuppressLint("NewApi")
    private void showNotification(int pos) {
        RemoteViews views = new RemoteViews(getPackageName(),
                R.layout.status_bar);
 
        Intent notificationIntent = new Intent(this, MainActivity.class);
        notificationIntent.setAction(Const.ACTION.MAIN_ACTION);
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);
 
        Intent playIntent = new Intent(this, NotificationService.class);
        playIntent.setAction(Const.ACTION.PLAY_ACTION);
        PendingIntent pplayIntent = PendingIntent.getService(this, 0,
                playIntent, 0);
 
        Intent closeIntent = new Intent(this, NotificationService.class);
        closeIntent.setAction(Const.ACTION.STOPFOREGROUND_ACTION);
        PendingIntent pcloseIntent = PendingIntent.getService(this, 0,
                closeIntent, 0);
 
        views.setOnClickPendingIntent(R.id.status_bar_play, pplayIntent);
 
        views.setOnClickPendingIntent(R.id.status_bar_collapse, pcloseIntent);
 
        if (pos == 0)
        {
            views.setImageViewResource(R.id.status_bar_play,
                    R.drawable.pause_ntf);
        }
 
        if(pos == 1) {
            views.setImageViewResource(R.id.status_bar_play,
                    R.drawable.pause_ntf);
            if(MainActivity.btnPlay!=null)
            {
                MainActivity.btnPlay.setImageResource(R.drawable.play);
                MainActivity.playing_animation.setVisibility(View.GONE);
                MainActivity.loading_animation.setVisibility(View.VISIBLE);
                MainActivity.btnPlay.setVisibility(View.GONE);
                MainActivity.started = true;
            }
        }
        if(pos == 2)
        {
            views.setImageViewResource(R.id.status_bar_play,
                    R.drawable.play_ntf);
            if(MainActivity.btnPlay!=null)
            {
                MainActivity.btnPlay.setImageResource(R.drawable.play);
                MainActivity.playing_animation.setVisibility(View.GONE);
                MainActivity.loading_animation.setVisibility(View.GONE);
                MainActivity.btnPlay.setVisibility(View.VISIBLE);
                MainActivity.started= false;
            }
        }
       status = new Notification.Builder(this).build();
       status.contentView = views;
       status.flags = Notification.FLAG_ONGOING_EVENT;
       status.icon = R.drawable.radio;
       status.contentIntent = pendingIntent;
       startForeground(Const.FOREGROUND_SERVICE, status);
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
    }
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
 
        context = this;
        if (intent.getAction().equals(Const.ACTION.STARTFOREGROUND_ACTION)) {
            isPause = false;
            showNotification(0);
            Player.start(Const.RADIO_PATH, this);
        }
        else if (intent.getAction().equals(Const.ACTION.PLAY_ACTION)) {
            if(!isPause) {
                showNotification(2);
                Player.stop();
                isPause = true;
            }
            else
            {
                showNotification(1);
                isPause = false;
                Player.start(Const.RADIO_PATH, this);
            }
        }
        else if (intent.getAction().equals(
                Const.ACTION.STOPFOREGROUND_ACTION)) {
            if(MainActivity.btnPlay!=null)
            {
                MainActivity.btnPlay.setImageResource(R.drawable.play);
                MainActivity.playing_animation.setVisibility(View.GONE);
                MainActivity.loading_animation.setVisibility(View.GONE);
                MainActivity.btnPlay.setVisibility(View.VISIBLE);
                MainActivity.started = false;
            }
            Player.stop();
            stopForeground(true);
            stopSelf();
        }
 
        return START_STICKY;
    }
 
}
0
+1
328 / 161 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
07.08.2018, 09:32 4
Цитата Сообщение от EduardSakh Посмотреть сообщение
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
Вот тут собака и порылась.
Вот простой пример уведомления:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            Intent iN = new Intent(getApplicationContext(), MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            PendingIntent pI = PendingIntent.getActivity(getApplicationContext(),
                    0, iN, PendingIntent.FLAG_CANCEL_CURRENT);
            Notification.Builder bI = new Notification.Builder(
                    getApplicationContext());
 
            bI.setContentIntent(pI)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setAutoCancel(true)
                    .setContentTitle(getResources().getString(R.string.app_name))
                    .setContentText("text...");
 
            Notification notification = bI.build();
            startForeground(101, notification);
0
EduardSakh
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 51
07.08.2018, 17:24  [ТС] 5
где это в моём коде прописать?
0
+1
328 / 161 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
07.08.2018, 17:51 6
в моем примере заменить bI на status, удалить строку где собака порылась.
C интентами - тут у тебя по нажатию на значёк уведомления вызывается NotificationService.class, что там есть - я хз.
101, ясен пень, заменить на Const.FOREGROUND_SERVICE, не знаю что за канал там у тебя прописан.
0
07.08.2018, 17:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2018, 17:51

Узнать время работы консольного приложения
Получить время работы консольного приложения (время выполнения кода) в формате: часы:минуты:секунды...

Закрыть порт на время работы приложения
Здравствуйте, подскажите как можно сделать чтобы при запуске программы блокировался для исходящий...

Повышение прав приложения во время работы
Имеется проект графической программы. Этой программе необходимо во время работы повышать права до...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.