অ্যান্ড্রয়েডে LOW LATENCY OFFBODY DETECT সেন্সর যাচাই
এই টিউটোরিয়ালে শিখব কিভাবে ডিভাইসে কম বিলম্বের অফ-বডি ডিটেকশন সেন্সর (TYPE_LOW_LATENCY_OFFBODY_DETECT) উপলব্ধ কিনা তা যাচাই করতে হয়। এটি হেডফোন/ইয়ারবডস ডিটেকশনের জন্য ব্যবহৃত হয়।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
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.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private SensorManager sensorManager;
TextView actionEvent;
@RequiresApi(api = Build.VERSION_CODES.N)
@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);
// LOW LATENCY OFFBODY DETECT সেন্সর যাচাই (API 24+)
if (sensorManager.getDefaultSensor(Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT) != null) {
actionEvent.setText("✓ LOW LATENCY OFFBODY DETECT সেন্সর সমর্থিত");
} else {
actionEvent.setText("✗ LOW LATENCY OFFBODY DETECT সেন্সর সমর্থিত নয়");
}
}
}
সেন্সর বিবরণ
| বিষয় | বিস্তারিত |
|---|---|
| সেন্সর টাইপ | Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT |
| API লেভেল | 24 (Android 7.0 Nougat) এ যোগ |
| কার্যকারিতা | ডিভাইস শরীর থেকে আলাদা হলে দ্রুত ডিটেক্ট করে (হেডফোন/ওয়েয়ারেবল) |
| বিলম্ব | স্ট্যান্ডার্ড OFFBODY_DETECT-এর চেয়ে কম লেটেন্সি |
| উপলব্ধতা | সীমিত ডিভাইস (প্রিমিয়াম হেডফোন/পিক্সেল ডিভাইস সমর্থন করে) |
স্ট্যান্ডার্ড vs LOW LATENCY তুলনা
| বৈশিষ্ট্য | TYPE_OFFBODY_DETECT | TYPE_LOW_LATENCY_OFFBODY_DETECT |
|---|---|---|
| লেটেন্সি | উচ্চ (সেকেন্ডের পরিসরে) | নিম্ন (মিলিসেকেন্ডের পরিসরে) |
| ব্যাটারি খরচ | কম | অপেক্ষাকৃত বেশি |
| উপযোগিতা | সাধারণ ডিটেকশন | রিয়েল-টাইম অডিও পজ/প্লে |
ইভেন্ট মান
SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// event.values[0]: 1.0 = on-body, 0.0 = off-body
float state = event.values[0];
if (state == 1.0f) {
// ডিভাইস শরীরে/কানে আছে
} else {
// ডিভাইস শরীর থেকে আলাদা
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
ব্যবহারের ক্ষেত্র
- ট্রু ওয়ায়ারলেস ইয়ারবডস (TWS) - অটো পজ/প্লে
- স্মার্ট হেডফোন - হেড ডিটেকশন
- ওয়েয়ারেবল ডিভাইস ম্যানেজমেন্ট
অ্যাপ্লিকেশন চালানো
রান করলে ডিভাইস সাপোর্ট করলে "✓ LOW LATENCY OFFBODY DETECT সেন্সর সমর্থিত" দেখাবে। অধিকাংশ সাধারণ ফোনে এটি অনুপস্থিত থাকে।
লক্ষ্য করুন
- এটি হার্ডওয়্যার-নির্ভর সেন্সর, সফ্টওয়্যারে অনুকরণ করা যায় না
- প্রাথমিকভাবে Pixel Buds, Samsung Galaxy Buds Pro ইত্যাদির সাথে কাজ করে
- API 24+ ডিভাইস দরকার