SmartEyeGlassでセンサーを使う方法
センサーの値を取得するには
1. SensorManager のオブジェクトを取得する
2. SensorManager オブジェクトにセンサーのリスナーを登録する
3. センサーの値を取得する
を行う必要がある。具体的には
sensorManagerを取得し、そこからセンサーを取得
private AccessorySensorManager sensorManager; private AccessorySensor sensor = null; sensorManager = new AccessorySensorManager(context, hostAppPackageName); // 方位センサー sensor = sensorManager.getSensor(SensorTypeValue.MAGNETIC_FIELD); // 加速度センサー sensor = sensorManager.getSensor(SensorTypeValue.ACCELEROMETER); // 輝度センサー sensor = sensorManager.getSensor(SensorTypeValue.LIGHT);
オブジェクト(センサー)にリスナーを登録し、値を使う
try { sensor.registerListener(new AccessorySensorEventListener() { @Override public void onSensorEvent(final AccessorySensorEvent ev) { // 値を使う例 float[] v = ev.getSensorValues(); } }, Sensor.SensorRates.SENSOR_DELAY_NORMAL, 0); } catch (AccessorySensorException e) { Log.d(Constants.LOG_TAG, "Failed to register listener"); }
これらをControlExtensionを継承したクラスのonResume()内などでやればよい
終了する時はonPause()などの中に
sensor.unregisterListener(); sensor = null;
を記述してリスナーを外すのを忘れないように