Android kitkat versiyonu ile gelen TYPE_STEP_COUNTER sensörü özelliği ile artık adım sayar uygulamasını kolaylıkla yapabilirsiniz. Bunun için android'in sensör servislerini kullanmamız yeterli olacaktır. Örnek bir uygulama ile olayı kavrayalım. Örnek layout dosyamız;
Java dosyamız;
Örnekte de gördüğünüz gibi java dosyamıza SensorEventListener'ı implements ederek kolaylıkla sensörü kullanabiliyoruz.
Kod:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Adım sayar çalışıyor:"/>
<TextView android:id="@+id/count"
android:textSize="36dp"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
Java dosyamız;
Kod:
package com.starboardland.pedometer;
import android.app.Activity;
import android.content.Context;
import android.hardware.*;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements SensorEventListener {
private SensorManager sensorManager;
private TextView count;
boolean activityRunning;
@Override
public **** onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
count = (TextView) findViewById(R.id.count);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected **** onResume() {
super.onResume();
activityRunning = true;
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if (countSensor != null) {
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
} else {
Toast.makeText(this, "Count sensor not available!", Toast.LENGTH_LONG).show();
}
}
@Override
protected **** onPause() {
super.onPause();
activityRunning = false;
// if you unregister the last listener, the hardware will stop detecting step events
// sensorManager.unregisterListener(this);
}
@Override
public **** onSensorChanged(SensorEvent event) {
if (activityRunning) {
count.setText(String.valueOf(event.values[0]));
}
}
@Override
public **** onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
Örnekte de gördüğünüz gibi java dosyamıza SensorEventListener'ı implements ederek kolaylıkla sensörü kullanabiliyoruz.