1
public class MainActivity extends Activity implements SensorEventListener {
    final String tag = "myLogs";
    SensorManager sm = null;
    Sensor lightSensor;
    float lightQuantity;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sm = (SensorManager) getSystemService(SENSOR_SERVICE);
        lightSensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT);

        if(lightSensor == null)
            Log.d(tag, "no sensor:(");
        else
            Log.d(tag, "GOT IT!");

    }

    @Override
    protected void onResume() {
        super.onResume();
        sm.registerListener((SensorEventListener)this, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onStop() {
        sm.unregisterListener((SensorEventListener)this);
        super.onStop();
    }

    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        Log.d(tag,"onAccuracyChanged: " + sensor.getType() + ", accuracy: " + accuracy);

    }

    public void onSensorChanged(SensorEvent event) {
        lightQuantity = event.values[0];
        Log.d(tag,"onSensorChanged: " + event.sensor.getType() + ", result: " + lightQuantity);

    }
}

このコードでは光センサーの統計を取得できません。"no sensor:(" メッセージが常に表示されます。getSensorList() メソッドでも光センサーが表示されません。私のデバイス: Xperia PRO (mk16i)。SE 光センサーのテストはうまく機能します。

4

1 に答える 1

0

問題は、Xperiaにドライバーを介して標準のAndroidの方法でセンサーが実装されていないことです。以下に詳述するように、カーネル変数を読み取ることで使用できる独自の実装のみがあります。(c)

于 2012-12-05T21:06:47.787 に答える