2015-11-27 40 views
0

从此blog我了解到,对于所有媒体应用程序,我都应请求AudioFocus,并且只有在授予AudioFocus时才开始播放。我需要为报警应用程序设置哪种AudioFocus

am.requestAudioFocus(audioFocusChangeListener,AudioManager.STREAM_ALARM,AudioManager.AUDIOFOCUS_GAIN); 

我在做报警应用程序。
作为一个闹钟,它应该一直响铃直到被解雇 - 除了在电话通话期间(这是合乎逻辑的)。

如果一个呼叫振铃或空闲通过使用TelephonyManager

TelephonyManager telephonyManager = 
     (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
    telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); 

    switch (telephonyManager.getCallState()) { 
     case TelephonyManager.CALL_STATE_IDLE: 
     outsidePause = false; 
     break; 
     default: 
     outsidePause = true; 
     break; 
    } 
PhoneStateListener phoneStateListener = new PhoneStateListener() { 
    @Override public void onCallStateChanged(int state, String incomingNumber) { 
     switch (state) { 

     case TelephonyManager.CALL_STATE_IDLE: 
      outsidePause = false; 
      Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, 
       Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); 
      android.provider.Settings.System.putInt(getContentResolver(), 
       android.provider.Settings.System.SCREEN_BRIGHTNESS, (0)); 
      am.setStreamVolume(AudioManager.STREAM_ALARM, 0, 0); 
      setInnerData(); 
      startAlarm(); 
      break; 
     default: 
      outsidePause = true; 
      vibrator.cancel(); 
      pauseAlarm(); 
      break; 
     } 
     super.onCallStateChanged(state, incomingNumber); 
    } 
    }; 

以在帐户中的TelephonyManager我可以跟踪,是有用和所必要的使用AudioFocus(如果它是,该模式是preferrable) ?

另一个应用程序可以从我的,使沉默警报?

回答

0

似乎,如果确定使用音频焦点。 Othet应用程序不会采取它,直到我放弃它。

相关问题