在我的应用程序中,只要手靠近接近传感器,我就必须播放声音,并在远离传感器时停止声音。这是我使用的代码片段。
public void onSensorChanged(SensorEvent event) {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(),notification);
if (event.values[0] == 0) {
r.play();
}
else{
r.stop();
}
}
但我的应用程序没有按预期工作。即使我将手移离传感器,铃声也会在完全播放后停止。
我是Android编程新手。因此,我无法通过谷歌搜索获得的信息纠正错误。如果逻辑错误,请告诉其他方法。提前谢谢。
答案 0 :(得分:0)
当r.stop();
为空时,您正在呼叫r
。你在if块中说r =
,这就是代码部分工作的原因。但是无论何时输入else而不是if,r
都为null,程序崩溃。