こんにちは。プログラミング初心者の者です。
この度、android studio にてスマートウォッチにおける加速度センサとジャイロスコープからのデータを表示するアプリを作成しました。
目標としてはスマートウォッチ画面に表示されるデータをmobile側で受け取り、画面に表示させたいです。
MessageAPIというものを使えばできると書いてあるのですが、専門外なため、全く使い方がわかりません。
どこにどう入れるか、どなたかご教授願います。以下がwear側のコードです。
package com.example.sensor_test;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity implements SensorEventListener, Runnable{
private boolean mRegisteredSensor; private SensorManager mSensorManager; private float[] accelerometerValues = new float[3]; private float[] magneticValues = new float[3]; public static TextView text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView)findViewById(R.id.text); mRegisteredSensor = false; mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); ArrayList<List<Sensor>> sensors = new ArrayList<List<Sensor>>(); sensors.add( mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER)); sensors.add( mSensorManager.getSensorList(Sensor.TYPE_GYROSCOPE)); for(List<Sensor> sensor : sensors){ if(sensor.size()>0){ mRegisteredSensor = mSensorManager.registerListener(this, sensor.get(0), SensorManager.SENSOR_DELAY_FASTEST); } } } @Override protected void onResume() { super.onResume(); { ArrayList<List<Sensor>> sensors = new ArrayList<List<Sensor>>(); sensors.add( mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER)); sensors.add( mSensorManager.getSensorList(Sensor.TYPE_GYROSCOPE)); for(List<Sensor> sensor : sensors){ if(sensor.size()>0){ mRegisteredSensor = mSensorManager.registerListener(this, sensor.get(0), SensorManager.SENSOR_DELAY_FASTEST); } } } } @Override protected void onPause() { if (mRegisteredSensor) { mSensorManager.unregisterListener(this); mRegisteredSensor = false; } super.onPause(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { accelerometerValues = event.values.clone(); } else if(event.sensor.getType() == Sensor.TYPE_GYROSCOPE){ magneticValues = event.values.clone(); } text.setText( "x " + accelerometerValues[0] + ", \n" + "y " + accelerometerValues[1] + ", \n" + "z " + accelerometerValues[2] + ", \n" + "gx " + magneticValues[0] + ", \n" + "gy " + magneticValues[1] + ", \n" + "gz " + magneticValues[2] ); } } @Override public void run() { // TODO Auto-generated method stub } }