एंड्रॉइड में LOW LATENCY OFF-BODY DETECT सेंसर सपोर्ट जांचें
यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT सेंसर की उपलब्धता कैसे जांचें। यह सेंसर डिवाइस के शरीर से हटाए जाने का तेजी से पता लगाता है।
चरण 1: प्रोजेक्ट बनाएं
एंड्रॉइड स्टूडियो में नया प्रोजेक्ट बनाएं (API 29+ अनुशंसित)।
चरण 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="24sp"
android:textStyle="bold"
android:layout_marginTop="30dp"
android:padding="24dp"
android:background="#F3E5F5"
android:text="जांच हो रही है..."/>
</LinearLayout>
चरण 3: एक्टिविटी कोड (src/MainActivity.java)
package com.example.offbodydetectcheck;
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);
checkOffBodyDetectSupport();
}
private void checkOffBodyDetectSupport() {
// API 29 (Android 10) में जोड़ा गया
Sensor offBodySensor = sensorManager.getDefaultSensor(Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT);
if (offBodySensor != null) {
sensorStatus.setText("✓ LOW LATENCY OFF-BODY DETECT सपोर्ट करता है");
sensorStatus.setTextColor(0xFF4CAF50);
String info = String.format(
"सेंसर: %s\nवेंडर: %s\nवर्जन: %d\nरेंज: %.1f\nरिजॉल्यूशन: %.3f\nपावर: %.3f mA",
offBodySensor.getName(),
offBodySensor.getVendor(),
offBodySensor.getVersion(),
offBodySensor.getMaximumRange(),
offBodySensor.getResolution(),
offBodySensor.getPower()
);
sensorStatus.append("\n\n" + info);
} else {
sensorStatus.setText("✗ LOW LATENCY OFF-BODY DETECT सपोर्ट नहीं करता");
sensorStatus.setTextColor(0xFFF44336);
sensorStatus.append("\n\nनोट: यह सेंसर Android 10 (API 29) में पेश किया गया था।\nयह डिवाइस के शरीर से हटाए जाने का तेजी से पता लगाता है।\nमुख्य रूप से वियरेबल्स/हेडफोन्स में उपयोग होता है।");
}
}
}
OFF-BODY DETECT सेंसर क्या है?
- उद्देश्य: पता लगाता है कि डिवाइस उपयोगकर्ता के शरीर से कब हटाया गया
- कम विलंबता: मानक ऑफ-बॉडी डिटेक्ट से तेज प्रतिक्रिया
- उपयोग: मीडिया प्लेबैक ऑटो-पॉज, पावर सेविंग, सुरक्षा लॉक
- उपलब्धता: Android 10+ (API 29), मुख्य रूप से वियरेबल्स, हेडफोन्स, कुछ फोन में
- संबंधित:
TYPE_OFF_BODY_DETECT(मानक, उच्च विलंबता)
सेंसर इवेंट डेटा
// इवेंट मान:
event.values[0] = 1.0f // ऑन-बॉडी (पहना हुआ)
event.values[0] = 0.0f // ऑफ-बॉडी (हटाया गया)
// उपयोग उदाहरण:
SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
boolean onBody = event.values[0] == 1.0f;
if (onBody) {
// मीडिया प्ले करें, अनलॉक रखें
} else {
// मीडिया पॉज करें, लॉक करें, पावर सेव करें
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
सभी डिवाइस सेंसर्स सूचीबद्ध करें (डीबगिंग के लिए)
ListallSensors = sensorManager.getSensorList(Sensor.TYPE_ALL); for (Sensor s : allSensors) { Log.d("SENSOR", String.format( "Type: %d (%s), Name: %s, Vendor: %s", s.getType(), getSensorTypeName(s.getType()), s.getName(), s.getVendor() )); } // हेल्पर मेथड private String getSensorTypeName(int type) { switch (type) { case Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT: return "LOW_LATENCY_OFFBODY_DETECT"; case Sensor.TYPE_OFF_BODY_DETECT: return "OFF_BODY_DETECT"; // ... अन्य टाइप्स default: return "UNKNOWN_" + type; } }
चरण 4: टेस्ट करें
- Android 10+ डिवाइस पर चलाएं
- अधिकांश फोन "सपोर्ट नहीं करता" दिखाएंगे
- Pixel 4+, कुछ सैमसंग/वनप्लस डिवाइसेज सपोर्ट कर सकते हैं
- वियरेबल्स (वियर OS) पर अधिक संभावना
