1

アプリケーションに近接センサーを実装したいと考えています。しかし、どうすればアプリケーションを別の電話で動作させることができますか?

問題 : Micromax A177 と Moto E には近接センサーがあるように見えますが、最小値と最大値が異なるため、問題があります。Micromax の場合、Sensor Box アプリケーションで 0 と 1 であることがわかりました。Moto E の場合、3 と 100 を示しています。アプリケーションの比較条件は、0 よりも大きいものと比較した場合のようになります。 Moto E で常に呼び出されます。

どんな助けでも大歓迎です。

センサーの登録後、実装されたリスナー コードは Code used です。

    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 に答える