2015-02-15 3 views
0

Я пытаюсь обновить и зарегистрировать измененные режимы для звонка в текстовое окно. Спасибо за помощь!Broadcast Receiver с помощью RINGER_MODE_CHANGED

Вот мой приемник Manifest: (нет разрешения, необходимого от того, что я нашел)

<receiver android:name="RingTypeMainActivity$RingTypeBroadcastReceiver" > 
     <intent-filter> 
      <action android:name="android.media.RINGER_MODE_CHANGED" > 
      </action> 
     </intent-filter> 
    </receiver> 

Я использую BroadcastReceiver в моей деятельности как таковые: Когда я запустить приложение ничего добавляемого к textview (txtResults).

public static class RingTypeBroadcastReceiver extends BroadcastReceiver{ 


    @Override 
    public void onReceive(Context context, Intent intent) { 

     int num = intent.getIntExtra(AudioManager.EXTRA_RINGER_MODE, -1); 

     switch (num) { 
     case 0: 
      txtResults.append("Mode " + String.valueOf(num) + " - Normal audio mode: not ringing and no call established."); 
      break; 

     case 1: 
      txtResults.append("Mode " + String.valueOf(num) + " - Ringing audio mode. An incoming is being signaled."); 
      break; 

     case 2: 
      txtResults.append("Mode " + String.valueOf(num) + " - In call audio mode. A telephony call is established."); 
      break; 

     case 3: 
      txtResults.append("Mode " + String.valueOf(num) + " - In communication audio mode. An audio/video chat or VoIP call is established."); 
      break; 

     default: 
      break; 
     } 

ответ

1

Ваше имя приемника не указано должным образом в вашем файле манифеста.

Изменить эту строку кода

<receiver android:name="RingTypeMainActivity$RingTypeBroadcastReceiver" > 

к этому

<receiver android:name=".RingTypeMainActivity$RingTypeBroadcastReceiver" > 

Добавление точки (.) Перед именем приемника коротка для имени пакета.

+0

Я внес изменения, но до сих пор ничего не добавляется. Его почти так же, как если событие никогда не срабатывает для «трансляционного вещателя». – John

+0

Попробуйте добавить 'System.out' в свой' onReceive', чтобы узнать, запускает ли метод 'onReceive' triggerd @John – Marcus

Смежные вопросы