Я написал этот кусок кода, он явно ошибочен. Как мне создать службу, которая будет постоянно проверять изменения громкости? Key listeners нельзя использовать в сервисах, пожалуйста, не публикуйте ответ с прослушивателями громкости.
Мой код неверен, потому что я задал фиктивное условие для цикла while. Каким должно быть условие, чтобы моя служба проверяла изменение громкости и не вылетала? Этого не может быть isScreenOn()
, потому что громкость можно изменить во время прослушивания музыки, а экран выключен.
КОД
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int newVolume=0;
while(1==1)
{
newVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
if(currentVolume!=newVolume)
{
Toast.makeText(this, "Volume change detected!", Toast.LENGTH_LONG).show();
}
}