Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中使用铃声检测接近传感器的近距离和远距离_Java_Android_Proximity - Fatal编程技术网

Java 在android中使用铃声检测接近传感器的近距离和远距离

Java 在android中使用铃声检测接近传感器的近距离和远距离,java,android,proximity,Java,Android,Proximity,在我的应用程序中,只要手靠近接近传感器,我就必须播放声音,如果手远离传感器,我就必须停止声音。这是我使用的代码片段 public void onSensorChanged(SensorEvent event) { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); Ringtone r = RingtoneManager.getRingtone(getApplicatio

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

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

您正在呼叫
r.stop()
r
为空。您在if块中说
r=
,这就是代码的这一部分工作的原因。但是每当您输入else而不是if时,
r
为空,您的程序就会崩溃。

收到了,谢谢。。我已经编辑了我的问题。你能解释一下吗。。?