1

我想在应用程序中实现接近传感器。但是我怎样才能让应用程序在不同的手机上工作。

问题:Micromax A177 和 Moto E 存在问题,因为它们似乎有接近传感器,但最小值和最大值不同。在 Micromax 的情况下,我发现它在 Sensor Box 应用程序中为 0 和 1,在 Moto E 的情况下,它显示 3 和 100。现在应用程序的比较条件应该是什么,就好像我将它与大于 0 的比较一样,那么它将在 Moto E 中一直被调用。

任何帮助表示赞赏。

注册传感器后,实现的监听器代码是使用的代码:

    proximitySensorListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        // Here I have issue, How to make it working in case of all different phone.
        if(event.values[0]>0)
        {
            methodCalled();
        }
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }
};
4

1 回答 1

0

根据文档:

一些接近传感器仅支持二进制近或远测量。在这种情况下,传感器应报告其在远状态下的最大范围值和在近状态下的较小值

因此,您应该将其值与您声明的传感器作为proximitySensor.getMaximumRange() 进行比较,并在您的代码中使用它。

proximitySensorListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        // Here I have issue, How to make it working in case of all different phone.
        if(event.values[0]<proximitySensor.getMaximumRange())
        {
            methodCalled();
        }
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }
};
于 2015-12-15T05:47:56.217 回答