Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
KorPaEv
57 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 208
#1

Уведомления в BroadcastReceiver - Программирование Android

26.11.2015, 14:29. Просмотров 460. Ответов 2
Метки нет (Все метки)

Привет, уважаемые!
Прикрутил BroadcastReceiver, мониторю входящие смс, пытаюсь отключить звук входящего смс если оно удовлетворяет моим условиям
Вроде все прописал, но звук смс срабатывает все равно дважды - 1й раз в BroadcastReceiver, второй раз в системном менеджере
Привожу то, что в манифесте у меня и сам BroadcastReceiver
Подскажите куда копать?

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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.SmartHome"
          android:versionCode="1"
          android:versionName="1.0">
 
    <uses-sdk android:minSdkVersion="17"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
 
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
 
        <activity android:name="MainActivity"
                  android:label="@string/main_inf"
                  android:windowSoftInputMode="stateHidden"> 
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
 
        <receiver android:name=".MessageReceiver" android:enabled="true">
            <intent-filter android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>
 
    </application>
</manifest>
Сам рессивер

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
package com.example.SmartHome;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.Bundle;
import android.telephony.SmsMessage;
 
public class MessageReceiver extends BroadcastReceiver
{
    private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
    
//ВОТ ТУТ МАНАГЕР ЗВУКА
    private static AudioManager audioManager;
 
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Bundle bundle = intent.getExtras();
        String smsFrom = "", smsBody = "";
        String[] splitSmsBody;
 
//СТУЧУСЬ К СЕРВИСУ, ОТКЛЮЧАЮ СРАЗУ ЗВУК В РЕССИВЕРЕ ПО УМОЛЧАНИЮ НО ТУТ ПОЧЕМУ ТО ОН НЕ ОТКЛЮЧАЕТСЯ УЖЕ
 
        audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
        audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
 
        if (intent != null && intent.getAction() != null && ACTION.compareToIgnoreCase(intent.getAction()) == 0)
        {
         //.......   
         }
       
            if (smsBody.contains("SmartHome"))
            {
              //......
             }
 
 
//ИНАЧЕ ВКЛЮЧАЮ ОБРАТНО СИСТЕМНЫЙ ЗВУК НО НЕ ПАХАЕТ!!!
 
 
            else audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2015, 14:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Уведомления в BroadcastReceiver (Программирование Android):

BroadcastReceiver - Программирование Android
У меня такой вопрос если я создал ресивер и прописал его в манифесте. Мой ресивер прослушивает определенные интенты. И у меня такой вопрос...

BroadcastReceiver и startActivity - Программирование Android
У меня есть служба и BroadcastReceiver. Когда приходит событие, то я вызываю startService. Если служба не запущена, то она запускается и...

BroadcastReceiver + static переменная - Программирование Android
Работая с бродкаст ресивером задался вопросом, как же он всё-таки работает?) Есть следующий код, который фиксирует состояние телефонного...

Servise, BroadcastReceiver, Activity - Программирование Android
Здравствуйте, есть сервис и активити, сервис возвращает данные активити через BroadcastReceiver... все работает отлично, но когда виходиш...

Чтение preferences в BroadcastReceiver - Программирование Android
Доброго времени суток. Сам смысл того что я делаю: есть активити, которая отображает состояние батареи, есть активити настроек и есть...

Виджеты, BroadcastReceiver и Строки - Программирование Android
Здравствуйте. Занимаюсь созданием виджета. Делаю что то наподобие нажатия на кнопку. Использую Broadcast. Предполагается ,что после нажатия...

2
REALIST07
Автор FAQ
Автор FAQ
181 / 181 / 14
Регистрация: 11.06.2010
Сообщений: 949
27.11.2015, 15:02 #2
Вы уверены,что не NotificationManager за системные звуки отвечает?
0
KorPaEv
57 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 208
30.11.2015, 09:17  [ТС] #3
REALIST07, не уверен, потому как только начал копать эту тему...как из менеджера уведомлений вытащить звук смс тогда?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2015, 09:17
Привет! Вот еще темы с ответами:

BroadcastReceiver, считывание состояние телефона - Программирование Android
Добрый день! Создал вот такой класс, для считывания состояния телефона во время звонка. public class CallReceiver extends...

BroadcastReceiver, куда добавить код? - Программирование Android
помогите понять часть статьи https://habrahabr.ru/post/234425/. добрался до Для работы BroadcastReceiver'а надо добавить немного кода в...

Запуск BroadcastReceiver без активити - Программирование Android
Имеется приложение, включающее в себя единственный класс: public class MyReceiver extends BroadcastReceiver{ @Override ...

Как заставить работать BroadcastReceiver? - Программирование Android
Добрый день! Собственно идея: есть стандартный плеер телефона(HTC One m7 Android 4.4.3) и проводная гарнитура с одной кнопкой. Но по...


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

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

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