###前提・実現したいこと
Moto360 sportで心拍数センサーを用いて心拍数をリアルタイムに画面に表示するアプリを作りたいと考えています。当方プログラミング初心者です。ネット上に公開されている加速度センサーや気圧センサーの値を取得するコードを参考に心拍数センサーを用いたコードを作成したのですが、ビルドは成功しているのにアプリが全く動きません。問題点および解決方法をぜひご教授ください。よろしくお願いいたします。
###発生している問題・エラーメッセージ
07-19 12:40:07.063 1069-1069/? E/GCM: Dropping message to GMS from 745476177629 as no component is set
07-19 12:40:10.969 478-504/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat: open failed: ENOENT (No such file or directory)
この2つのエラーメッセージが延々と流れてしまっています。
###該当のソースコード
**MainActivity.java
package 〇〇.hr_monitor;
import android.support.wearable.activity.WearableActivity;
import android.support.wearable.view.BoxInsetLayout;
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;
import com.google.android.gms.wearable.Wearable;
public class MainActivity extends WearableActivity implements SensorEventListener {
private SensorManager mSensorManager;
private TextView mHeartRate;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mHeartRate = (TextView) findViewById(R.id.heartrate); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); } @Override protected void onPause() { // センサーの解除 super.onPause(); mSensorManager.unregisterListener(this); } @Override protected void onResume() { super.onResume(); // センサーの登録 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE), SensorManager.SENSOR_DELAY_UI); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { //心拍数を取得 float[] values = event.values; mHeartRate.setText("" + values[0]); }
}
**activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.wearable.view.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView android:id="@+id/heartrate" android:layout_width="120dp" android:layout_height="50dp" android:layout_marginTop="40dp" android:layout_marginLeft="45dp" android:textSize="25dp" android:textColor="#0000ff" android:gravity="center" />
</android.support.wearable.view.BoxInsetLayout>
###試したこと
加速度センサー・気圧センサーは正常に動かすことができました。
【追記】
MainActivity.javaに「Log.d("debug", "heart rate = "+ event.sensor.getType());」を追加、また、Wear側の権限を許可したところ、心拍数らしき数字が表示されるようになりました。しかし依然としてMonitorに上記のエラーは出たままです。
あなたの回答
tips
プレビュー