我写了这段代码,它显然有缺陷。如何创建一个不断检查音量变化的服务?按键监听器不能在服务中使用,请不要使用音量键监听器发布答案。
我的代码是错误的,因为我为 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();
}
}