एंड्रॉइड डिवाइस में हार्ट बीट (हृदय गति) सेंसर सपोर्ट जांचें
यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_HEART_BEAT का उपयोग करके कैसे जांचा जाए कि डिवाइस में हार्ट रेट सेंसर है या नहीं।
चरण 1: प्रोजेक्ट बनाएं
एंड्रॉइड स्टूडियो में नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट (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:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="24dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/sensorStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28sp"
android:textStyle="bold"
android:layout_marginTop="30dp"
android:padding="24dp"
android:background="#FCE4EC"
android:text="जांच हो रही है..."/>
</LinearLayout>
चरण 3: एक्टिविटी कोड (src/MainActivity.java)
package com.example.heartbeatcheck;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView sensorStatus;
private SensorManager sensorManager;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sensorStatus = findViewById(R.id.sensorStatus);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
checkHeartBeatSupport();
}
private void checkHeartBeatSupport() {
// हार्ट बीट सेंसर जांचें (API 21+ में उपलब्ध)
Sensor heartBeatSensor = sensorManager.getDefaultSensor(Sensor.TYPE_HEART_BEAT);
if (heartBeatSensor != null) {
sensorStatus.setText("✓ हार्ट बीट सेंसर सपोर्ट करता है");
sensorStatus.setTextColor(0xFF4CAF50);
String info = String.format(
"सेंसर: %s\nवेंडर: %s\nवर्जन: %d\nरेंज: %.1f\nरिजॉल्यूशन: %.3f\nपावर: %.3f mA",
heartBeatSensor.getName(),
heartBeatSensor.getVendor(),
heartBeatSensor.getVersion(),
heartBeatSensor.getMaximumRange(),
heartBeatSensor.getResolution(),
heartBeatSensor.getPower()
);
sensorStatus.append("\n\n" + info);
} else {
sensorStatus.setText("✗ हार्ट बीट सेंसर सपोर्ट नहीं करता");
sensorStatus.setTextColor(0xFFF44336);
sensorStatus.append("\n\nनोट: अधिकांश फोन में डेडिकेटेड हार्ट रेट सेंसर नहीं होता।\nसैमसंग गैलेक्सी S5-S10, नोट 4-9 में था।\nआधुनिक फोन PPG (फोटोप्लेथिसमोग्राफी) का उपयोग करते हैं।");
}
}
}
महत्वपूर्ण नोट्स
- दुर्लभ सेंसर: डेडिकेटेड
TYPE_HEART_BEATसेंसर केवल कुछ पुराने सैमसंग डिवाइसेज (गैलेक्सी S5-S10, नोट सीरीज) में था - आधुनिक विकल्प: अधिकांश फोन कैमरा + फ्लैश का उपयोग करके PPG (फोटोप्लेथिसमोग्राफी) से हार्ट रेट मापते हैं
- वियरेबल्स: स्मार्टवॉच/फिटनेस बैंड में PPG सेंसर आम हैं
TYPE_HEART_RATE(API 20) औरTYPE_HEART_BEAT(API 21) अलग-अलग कॉन्स्टेंट हैं
हार्ट रेट मापने के वैकल्पिक तरीके
// 1. कैमरा-आधारित PPG (अधिकांश फोन पर काम करता है) // लाइब्रेरी: Google Fit API, या कस्टम कैमरा प्रीव्यू विश्लेषण // 2. Google Fit API से हार्ट रेट डेटा पढ़ें // निर्भरता: implementation 'com.google.android.gms:play-services-fitness:21.0.0' // 3. ब्लूटूथ हार्ट रेट मॉनिटर (BLE GATT प्रोफाइल) // ब्लूटूथ LE डिवाइस से कनेक्ट करें
सेंसर उपलब्धता जांचने का सामान्य पैटर्न
public boolean hasSensor(int sensorType) {
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
return sm.getDefaultSensor(sensorType) != null;
}
// उपयोग
boolean hasHeartBeat = hasSensor(Sensor.TYPE_HEART_BEAT);
boolean hasHeartRate = hasSensor(Sensor.TYPE_HEART_RATE);
boolean hasStepCounter = hasSensor(Sensor.TYPE_STEP_COUNTER);
चरण 4: टेस्ट करें
- वास्तविक डिवाइस पर ऐप चलाएं
- अधिकांश आधुनिक फोन "सपोर्ट नहीं करता" दिखाएंगे
- पुराने सैमसंग फ्लैगशिप (S5-S10) पर true दिख सकता है
