অ্যান্ড্রয়েড ডিভাইসে হার্টবিট (Heart Rate) সেন্সর সাপোর্ট যাচাই
এই টিউটোরিয়ালে শিখব কিভাবে SensorManager ব্যবহার করে ডিভাইসে হার্ট রেট সেন্সর উপলব্ধ কিনা তা যাচাই করতে হয়। এটি ফিটনেস ও হেলথ ট্র্যাকিং অ্যাপের জন্য অত্যন্ত গুরুত্বপূর্ণ।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project নির্বাচন করে প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট ফাইল
res/layout/activity_main.xml ফাইলে:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/actionEvent"
android:textSize="40sp"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
ধাপ ৩: জাভা কোড
src/MainActivity.java ফাইলে:
package com.example.myapplication;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private SensorManager sensorManager;
TextView actionEvent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionEvent = findViewById(R.id.actionEvent);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// হার্টবিট সেন্সর যাচাই (API 21+)
if (sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) != null) {
actionEvent.setText("✓ হার্ট রেট সেন্সর সমর্থিত");
} else {
actionEvent.setText("✗ হার্ট রেট সেন্সর সমর্থিত নয়");
}
}
}
গুরুত্বপূর্ণ তথ্য
| বিষয় | বিস্তারিত |
|---|---|
| সেন্সর টাইপ | Sensor.TYPE_HEART_RATE (API 21 / Android 5.0+ এ যোগ) |
| উপলব্ধতা | প্রধানত স্যামসাং গ্যালাক্সি S-সিরিজ, নোট সিরিজ, কিছু মিড-রেঞ্জ ফোনে |
| অবস্থান | সাধারণত ফোনের পেছনে ক্যামেরার নিকট (ফ্ল্যাশের পাশে) |
| কার্যকারিতা | PPG (Photoplethysmography) টেকনোলজি ব্যবহার করে রক্ত প্রবাহ পরিমাপ করে |
হার্ট রেট ডেটা পড়ার উদাহরণ
Sensor heartRateSensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values.length > 0) {
float heartRate = event.values[0]; // বিট্স পার মিনিট (BPM)
// UI আপডেট করুন
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
sensorManager.registerListener(listener, heartRateSensor, SensorManager.SENSOR_DELAY_NORMAL);
পারমিশন (ঐচ্ছিক কিন্তু প্রস্তাবিত)
<uses-permission android:name="android.permission.BODY_SENSORS" />
সাধারণ সমস্যা ও সমাধান
| সমস্যা | সমাধান |
|---|---|
| সেন্সর null রিটার্ন করছে | ডিভাইসে হার্ডওয়্যার নেই, বা অ্যাক্সেস ব্লক করা আছে |
| মান 0.0 আসছে | আঙুল সঠিকভাবে রাখা হয়নি, সেভাবে চাপ দিন |
| অনিশ্চিত রিডিং | স্থির বসে থাকুন, আঙুল কাঁপানোর ফলাফল ভুল হবে |
বিকল্প: Google Fit API
হার্ডওয়্যার না থাকলে Google Fit REST API বা Sensors API ব্যবহার করে হেলথ ডেটা অ্যাক্সেস করা যায়।
অ্যাপ্লিকেশন চালানো
রান করলে ডিভাইসে হার্ট রেট সেন্সর থাকলে "✓ হার্ট রেট সেন্সর সমর্থিত" দেখাবে, অন্যথায় "✗ হার্ট রেট সেন্সর সমর্থিত নয়"।
লক্ষ্য করুন
- সभी ফোনে এই সেন্সর থাকে না (প্রিমিয়াম মডেলে বেশি থাকে)
- সেন্সর থাকলেও BODY_SENSORS পারমিশন দরকার হতে পারে
- ব্যাকগ্রাউন্ডে liên tục মনিটরিং ব্যাটারি ড্রেন করে