Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
#1

Оповещение при звонке - Программирование Android

24.04.2013, 23:08. Просмотров 1456. Ответов 18
Метки нет (Все метки)

Добрый вечер
Возможно ли сделать так чтобы после того как пользователь отвечал на звонок или к примеру приходило смс, выполнялось какое то событие генерируемое приложением (например какое то сообщение появлялось на экране) ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 23:08     Оповещение при звонке
Посмотрите здесь:

Не изменяется текст в TextView при звонке - Программирование Android
Здравствуйте. Пытаюсь реализовать следующее: Есть activity, где проигрывается аудио. Хочу чтобы при входящем звонке в TextView появлялась...

Вывести оператора и регион при звонке - Программирование Android
Всем привет!) Помогите пожалуйста, мучаюсь, как написать так что бы когда я набирал номер и начинал звонить, в углу появлялся оператор и...

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

Возможно ли передавать информацию о входящем звонке? - Программирование Android
Добрый день. Мне никогда ранее не приходилось писать на мобильных платформах, поэтому заранее извиняюсь, если вопрос глупый. ...

Есть ли API на андроид, чтобы я мог отклонить входящий звонок, получать инфу о звонке - Программирование Android
Очень нужно, если есть такая документация по API до дайте ссылку, хочу написать прогу которая отклоняет мои нежелательные номера через мою...

Оповещение в UI из потока - Программирование Android
Доброго времени. суть проблеммы в сл. не работает повторное оповещение UI из потока. в приложении создаеЦа новый поток для выполнения некой...

Оповещение по заданному времени и дате - Программирование Android
Здравствуйте, есть задача вывести оповещение по заданной пользователем дате и времени. В сети много примеров, но не понятно как с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.04.2013, 23:16     Оповещение при звонке #2
http://stackoverflow.com/questions/9...ceiver-handler
http://www.tutorialforandroid.com/20...alling_22.html
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 21:23  [ТС]     Оповещение при звонке #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
 
public class MyPhoneStateListener extends PhoneStateListener {
    
      public void onCallStateChanged(int state,String incomingNumber){
      switch(state){
        case TelephonyManager.CALL_STATE_IDLE:    
          Log.d("DEBUG", "IDLE");
        break;
        case TelephonyManager.CALL_STATE_OFFHOOK:      
          Log.d("DEBUG", "OFFHOOK");
        break;
        case TelephonyManager.CALL_STATE_RINGING:  
          Log.d("DEBUG", "RINGING");
        break;
        }
      } 
    }

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
 
public class ServiceReceiver extends BroadcastReceiver {
      @Override
      public void onReceive(Context context, Intent intent) {
        MyPhoneStateListener phoneListener=new MyPhoneStateListener();
        TelephonyManager telephony = (TelephonyManager) 
        context.getSystemService(Context.TELEPHONY_SERVICE);
        telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
      }
    }

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
import java.util.concurrent.TimeUnit;
 
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
 
public class MyService extends Service {
    NotificationManager nm;
      
      final String LOG_TAG = "myLogs";
 
      public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "onCreate");
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        
      }
      
      public int onStartCommand(Intent intent, int flags, int startId) {
        sendNotif();
        return super.onStartCommand(intent, flags, startId);
      }
 
      public void onDestroy() {
        super.onDestroy();
      }
 
      public IBinder onBind(Intent intent) {
        return null;
      }
 
 
    
      
      @SuppressWarnings("deprecation")
    void sendNotif() {
            Notification notif = new Notification(R.drawable.ic_launcher, "Text", 
              System.currentTimeMillis());
            Intent intent = new Intent(this, MainActivity.class);
            PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
            notif.setLatestEventInfo(this, "Text", "Text", pIntent);
            notif.flags |= Notification.FLAG_AUTO_CANCEL;
            nm.notify(1, notif);
          }
 
    }

Когда программа в фоне, то в логах появляются записи об этом.

а как определять звонок в сервисе?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 21:35     Оповещение при звонке #4
Цитата Сообщение от metrolog Посмотреть сообщение
а как определять звонок в сервисе?
передать с ресивера в сервис.

Добавлено через 2 минуты
ресивер можно динамически создать в сервисе - http://www.vogella.com/articles/Andr...ver_deregister
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 21:38  [ТС]     Оповещение при звонке #5
нужно чтобы при звонке, сервис создал уведомление.
то есть при звонке, передаю с ресивера на сервис, да?
каким образом он примет с ресивера? в потоке проверять? или он сам проверяет ?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 21:50     Оповещение при звонке #6
Цитата Сообщение от metrolog Посмотреть сообщение
нужно чтобы при звонке, сервис создал уведомление
а какая разница кто создает уведомление?

Цитата Сообщение от metrolog Посмотреть сообщение
то есть при звонке, передаю с ресивера на сервис, да?
да.

Цитата Сообщение от metrolog Посмотреть сообщение
каким образом он примет с ресивера? в потоке проверять? или он сам проверяет ?
вызовом метода сервиса.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 21:55  [ТС]     Оповещение при звонке #7
а какая разница кто создает уведомление?
чтобы уведомления появлялись при закрытой программе, через сервис.


вызовом метода сервиса.
не могли небольшой пример как передать с ресивера на сервис и как обработать на ресивере?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:03     Оповещение при звонке #8
Цитата Сообщение от metrolog Посмотреть сообщение
чтобы уведомления появлялись при закрытой программе, через сервис.
так какая разница?


Цитата Сообщение от metrolog Посмотреть сообщение
не могли небольшой пример как передать с ресивера на сервис и как обработать на ресивере?
биндаете сервис и получаете объект для коммуникации, это может быть сам сервис и вызываете нужный метод.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:07  [ТС]     Оповещение при звонке #9
Цитата Сообщение от V0v1k Посмотреть сообщение
чтобы уведомления появлялись при закрытой программе, через сервис.
так какая разница?

есть программа, из нее запускается сервис, предположим потом ее закрывают.
Если она закрыта при звонке уведомление она не сможет выдать ,так же? вот для этого я все это делаю в сервисе.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:16     Оповещение при звонке #10
Цитата Сообщение от документация
Declares a broadcast receiver (a BroadcastReceiver subclass) as one of the application's components. Broadcast receivers enable applications to receive intents that are broadcast by the system or by other applications, even when other components of the application are not running.
...
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:28  [ТС]     Оповещение при звонке #11
тогда последний вопрос, как создать и активировать приложение из ресивера?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:30     Оповещение при звонке #12
Цитата Сообщение от metrolog Посмотреть сообщение
создать и активировать приложение
нет такого понятия.
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:31  [ТС]     Оповещение при звонке #13
блин, уведомление имел ввиду.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:34     Оповещение при звонке #14
какое уведомление?
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:36  [ТС]     Оповещение при звонке #15
чтобы при звонке ресивер сгенерировал уведомление и оно появилось в центре уведомлений телефона.
как создать уведомление из ресивера?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:38     Оповещение при звонке #16
если вам нужен Notification, то смотрите сюда - http://developer.android.com/guide/t...fications.html
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:45  [ТС]     Оповещение при звонке #17
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
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
 
public class ServiceReceiver extends BroadcastReceiver {
    
    NotificationManager nm;
      
      
      @Override
      public void onReceive(Context context, Intent intent) {
        MyPhoneStateListener phoneListener=new MyPhoneStateListener();
        TelephonyManager telephony = (TelephonyManager) 
        context.getSystemService(Context.TELEPHONY_SERVICE);
        telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
      }
      
      
      public void ff(){
            Context context1 = getApplicationContext();
 
            Intent notificationIntent = new Intent(context1, ServiceReceiver.class);
            PendingIntent contentIntent = PendingIntent.getActivity(context1,
                    0, notificationIntent,
                    PendingIntent.FLAG_CANCEL_CURRENT);
 
            NotificationManager nm = (NotificationManager) context1 
                    .getSystemService(Context.NOTIFICATION_SERVICE);
            
            Resources res = context1.getResources();
            Notification.Builder builder = new Notification.Builder(context1);
 
            builder.setContentIntent(contentIntent)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setTicker("text")
                        .setWhen(System.currentTimeMillis())
                        .setAutoCancel(true)
                        .setContentTitle("text")
                        .setContentText("text");
            
            Notification n = builder.getNotification();
 
            nm.notify(101, n);
        }
      }


ругается на
Context context1 = getApplicationContext();
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.04.2013, 22:50     Оповещение при звонке #18
потому что у BroadcastReceiver'a нет такого метода. контекст вы получаете в onReceive(Context context, Intent intent)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 22:54     Оповещение при звонке
Еще ссылки по теме:

Неправильно работает оповещение google Firebase - Программирование Android
Сделал оповещение настроил его таким образом private void showNotification(String title, String message) { Intent intent =...

Оповещение в приложение, к которому нет доступа - Программирование Android
Возможно ли как-то показать сообщение всем, у кого установлено приложение? Но к самому приложению, точнее, к его публикации у меня нет...

BSOD при звонке через скайп - Звук, акустика
К сожалению, прочесть содержимое бсода я не успеваю (вроде как IRQL_NOT_LESS_OR_EQUAL, но я не уверен). Возникает только при звонках в...

Изменить голос при звонке онлайн - Софт
Всем доброго времени. Нужна помощь специалистов. Нужна программа для изменения голоса при входящем звонке. Звонить будут мне на...

Как воспроизвести запись при исходящем звонке - Аудио, усилители звука
Всем привет!!! У меня вопрос) Работаю оператором и часто приходится говорить одно и то же,возникла идея.Есть ли возможность...


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

Или воспользуйтесь поиском по форуму:
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101
25.04.2013, 22:54  [ТС]     Оповещение при звонке #19
спасибо вам большое все заработало.
Yandex
Объявления
25.04.2013, 22:54     Оповещение при звонке
Ответ Создать тему
Опции темы

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