使用铃声来检测Android中接近传感器的近端和远端

时间:2017-07-03 20:55:29

标签: java android proximity

在我的应用程序中,只要手靠近接近传感器,我就必须播放声音,并在远离传感器时停止声音。这是我使用的代码片段。

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编程新手。因此,我无法通过谷歌搜索获得的信息纠正错误。如果逻辑错误,请告诉其他方法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

r.stop();为空时,您正在呼叫r。你在if块中说r =,这就是代码部分工作的原因。但是无论何时输入else而不是if,r都为null,程序崩溃。