2010-11-08 4 views
4

У меня есть свой собственный BroadcastReceiver экземпляр для Intent.ACTION_HEADSET_PLUG действие. Между фактическим физическим отключением гарнитуры и моментом, когда об этом уведомляется BroadcastReceiver, происходит примерно 1-2 секунды.ACTION_HEADSET_PLUG задержка трансляции

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG); 
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY - 1); 
registerReceiver(new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    // my code here 
    } 
}, filter); 

Любые идеи о том, как уменьшить задержку?

ответ

8

Обработка AudioManager.ACTION_AUDIO_BECOMING_NOISY трансляция сделала трюк :) Его намерение транслируется непосредственно после того, как гарнитура отключена без какой-либо задержки.

+0

Хе-хе, мне очень приятно, что самый ответ (который я не говорю не так), который не сказал вам, привел к вашей маленькой работе. Congratz! – AedonEtLIRA

3

Вам не повезло.

Задержка зашиты в рамках, смотрите в

frameworks/base/services/java/com/android/server/HeadsetObserver.java 

Задержка составляет 1000 мс, из-за риска наличия мусора в звуковом трубопроводе.

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

  • Нет связанных вопросов^_^