Sensors API: यह क्या है, सेंसर के प्रकार और सेंसर के साथ काम करना

लेखक: IT Sectr प्रकाशित: 2026-03-26 पढ़ने का समय: 10 मिनट

Sensors API डिवाइस के हार्डवेयर सेंसर तक पहुँचने के लिए Android प्लेटफ़ॉर्म का एक इंटरफ़ेस है। API एक्सीलरोमीटर, जायरोस्कोप, मैग्नेटोमीटर, लाइट सेंसर और अन्य सेंसर से डेटा प्राप्त करने का एक एकीकृत तरीका प्रदान करता है। Google, 2026 के अनुसार, 95% से अधिक आधुनिक Android डिवाइस कम से कम तीन प्रकार के सेंसर से लैस हैं, जो संदर्भ-जागरूक एप्लिकेशन विकसित करने के व्यापक अवसर खोलता है।

मुख्य बातें

  • Sensors API — डिवाइस के हार्डवेयर सेंसर के साथ काम करने के लिए एक एकीकृत Android इंटरफ़ेस।
  • तीन श्रेणियाँ — Motion, Position और Environment सेंसर विभिन्न माप सिद्धांतों के साथ।
  • SensorManager — सेंसर की सूची प्राप्त करने और श्रोताओं को पंजीकृत करने के लिए एक सिस्टम सेवा।
  • अपडेट दर SENSOR_DELAY कॉन्स्टेंट के माध्यम से NORMAL से FASTEST तक सेट की जाती है।
  • वर्चुअल सेंसर — Gravity, Rotation Vector और Linear Acceleration भौतिक सेंसर के संयोजन पर आधारित हैं।

Android में Sensors API क्या है?

Sensors API Android Framework का एक सॉफ़्टवेयर इंटरफ़ेस है जो डेवलपर्स को मोबाइल डिवाइस के हार्डवेयर सेंसर तक पहुँच प्रदान करता है। API संस्करण 1.0 से Android SDK का हिस्सा रहा है और android.hardware पैकेज के माध्यम से उपलब्ध है। इंटरफ़ेस विभिन्न निर्माताओं — Qualcomm, MediaTek, Samsung Exynos — के सेंसर कार्यान्वयन के बीच अंतर को एब्स्ट्रैक्ट करता है और सेंसर के साथ काम करने का एक एकीकृत मॉडल प्रदान करता है।

Sensors API की मुख्य विशेषताएँ

API तीन मुख्य संचालन की अनुमति देता है: उपलब्ध सेंसर की सूची प्राप्त करना, डेटा प्राप्त करने के लिए श्रोताओं को पंजीकृत करना और अपडेट दर प्रबंधित करना। SensorManager सभी संचालन के लिए केंद्रीय पहुँच बिंदु के रूप में कार्य करता है। सिस्टम onSensorChanged कॉलबैक के माध्यम से एप्लिकेशन को सूचित करता है, जो float मानों की एक सरणी के साथ SensorEvent ऑब्जेक्ट पास करता है।

Sensors API का विकास

Android के अस्तित्व के दौरान, API विकास के कई चरणों से गुज़रा है। संस्करण 2.3 (Gingerbread) ने बैच प्रोसेसिंग के लिए समर्थन प्रस्तुत किया — बिजली की खपत को कम करने के लिए सेंसर इवेंट को समूहित करना। Android 4.0 (Ice Cream Sandwich) ने वर्चुअल सेंसर Gravity और Linear Acceleration जोड़े। Android 8.0 से शुरू करके, सिस्टम ने गोपनीयता बढ़ाने के लिए सेंसर तक बैकग्राउंड पहुँच को प्रतिबंधित कर दिया।

kotlin
val sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
val sensorList: List<Sensor> = sensorManager.getSensorList(Sensor.TYPE_ALL)
sensorList.forEach { sensor ->
    Log.d("सेंसर", "${sensor.name} — ${sensor.type}")
}

सीमाएँ और आवश्यकताएँ

सभी डिवाइस में सेंसर का एक ही सेट नहीं होता। एक एप्लिकेशन को श्रोता पंजीकृत करने से पहले किसी विशिष्ट सेंसर की उपलब्धता की जाँच करनी चाहिए। Android Emulator केवल सीमित सेंसर सेट — एक्सीलरोमीटर और मैग्नेटोमीटर का समर्थन करता है। अन्य सेंसर के परीक्षण के लिए भौतिक डिवाइस की आवश्यकता होती है। Android 12 से शुरू करके, एप्लिकेशन को मेनिफ़ेस्ट में सेंसर उपयोग घोषित करना होगा।

Android सेंसर प्रकार: Motion, Position, Environment

Android सभी सेंसर को तीन श्रेणियों में वर्गीकृत करता है: Motion, Position और Environment। Motion सेंसर में एक्सीलरोमीटर, जायरोस्कोप और स्टेप काउंटर शामिल हैं। Position सेंसर में मैग्नेटोमीटर और ओरिएंटेशन शामिल हैं। Environment सेंसर में प्रकाश, दबाव, तापमान और आर्द्रता शामिल हैं।

श्रेणीसेंसरप्रकार (स्थिरांक)भौतिक/वर्चुअल
Motionएक्सीलरोमीटरTYPE_ACCELEROMETERभौतिक
Motionजायरोस्कोपTYPE_GYROSCOPEभौतिक
Motionस्टेप काउंटरTYPE_STEP_COUNTERभौतिक
MotionGravityTYPE_GRAVITYवर्चुअल
Positionमैग्नेटोमीटरTYPE_MAGNETIC_FIELDभौतिक
PositionRotation VectorTYPE_ROTATION_VECTORवर्चुअल
Environmentप्रकाशTYPE_LIGHTभौतिक
EnvironmentदबावTYPE_PRESSUREभौतिक

Motion सेंसर: एक्सीलरोमीटर और जायरोस्कोप

एक्सीलरोमीटर तीन अक्षों — X, Y और Z के साथ m/s² में त्वरण मापता है। मानों में गुरुत्वाकर्षण शामिल है (स्थिर अवस्था में Z अक्ष के साथ 9.8 m/s²)। जायरोस्कोप rad/s — में कोणीय वेग मापता है, प्रत्येक अक्ष के चारों ओर डिवाइस की घूर्णन गति। इन दो सेंसर के संयोजन का उपयोग नेविगेशन, गेम और AR एप्लिकेशन में किया जाता है।

kotlin
class SensorActivity : Activity(), SensorEventListener {
    override fun onSensorChanged(event: SensorEvent) {
        if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
            val x = event.values[0]
            val y = event.values[1]
            val z = event.values[2]
            textView.text = "X: $x, Y: $y, Z: $z"
        }
    }
    override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {}
}

Position सेंसर: मैग्नेटोमीटर और ओरिएंटेशन

मैग्नेटोमीटर (TYPE_MAGNETIC_FIELD) तीन अक्षों के साथ माइक्रोटेस्ला (µT) में चुंबकीय क्षेत्र मापता है। इसका उपयोग डिजिटल कंपास के रूप में किया जाता है — एक्सीलरोमीटर के साथ मिलकर, यह डिवाइस के अज़ीमुथ को निर्धारित करता है। Rotation Vector एक वर्चुअल सेंसर है जो सटीक ओरिएंटेशन निर्धारण के लिए जायरोस्कोप, एक्सीलरोमीटर और मैग्नेटोमीटर से डेटा को फ़्यूज़ करता है।

Environment सेंसर: प्रकाश, दबाव, तापमान

प्रकाश सेंसर (TYPE_LIGHT) लक्स (lx) में परिवेशी प्रकाश स्तर मापता है। इसका उपयोग स्वचालित स्क्रीन चमक समायोजन के लिए किया जाता है। दबाव सेंसर (TYPE_PRESSURE) हेक्टोपास्कल (hPa) में वायुमंडलीय दबाव मापता है — नेविगेशन एप्लिकेशन में समुद्र तल से ऊँचाई निर्धारित करने के लिए उपयोग किया जाता है।

Sensors API आर्किटेक्चर कैसे काम करता है

Sensors API क्लाइंट-सर्वर आर्किटेक्चर पर बनाया गया है। एप्लिकेशन क्लाइंट के रूप में कार्य करता है, और SensorManager Android सिस्टम सेवा के रूप में कार्य करता है। जब एप्लिकेशन registerListener के माध्यम से एक श्रोता पंजीकृत करता है, SensorManager HAL (Hardware Abstraction Layer) — Linux कर्नेल स्तर पर चलने वाले निम्न-स्तरीय सेंसर ड्राइवर के साथ संचार करता है।

सेंसर इवेंट का जीवनचक्र

HAL ड्राइवर हार्डवेयर चिप से कच्चा डेटा प्राप्त करता है, शोर को फ़िल्टर करता है, और इसे स्टैक में ऊपर — SensorService (सिस्टम प्रक्रिया) के माध्यम से एप्लिकेशन तक पहुँचाता है। डेटा एक SensorEvent ऑब्जेक्ट के रूप में पास किया जाता है जिसमें float मानों की एक सरणी values और नैनोसेकंड में एक टाइमस्टैम्प होता है। इवेंट दर चयनित डिलीवरी मोड पर निर्भर करती है।

इवेंट डिलीवरी मोड

श्रोता पंजीकृत करते समय, डेवलपर कॉन्स्टेंट SENSOR_DELAY_NORMAL (200 ms), SENSOR_DELAY_UI (60 ms), SENSOR_DELAY_GAME (20 ms) और SENSOR_DELAY_FASTEST (0 ms — अधिकतम दर) का उपयोग करके इवेंट के बीच वांछित विलंब निर्दिष्ट करता है। वास्तविक दर भिन्न हो सकती है — सिस्टम बिजली की खपत को अनुकूलित करता है।

kotlin
val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
sensorManager.registerListener(
    this,
    sensor,
    SensorManager.SENSOR_DELAY_GAME
)

बैच प्रोसेसिंग

Android 2.3 से शुरू करके, सेंसर बैच मोड का समर्थन करते हैं — इवेंट FIFO बफ़र में जमा होते हैं और एक बैच में वितरित किए जाते हैं। यह प्रोसेसर को स्लीप मोड में अधिक समय तक रहने देता है, जिससे बिजली की खपत 60% तक कम हो जाती है। बफ़र का आकार सेंसर चिप पर निर्भर करता है और Sensor.fifoMaxEventCount फ़ील्ड में निर्दिष्ट किया जाता है।

सेंसर तक पहुँचने के लिए SensorManager का उपयोग

SensorManager एक सिस्टम सेवा है जो getSystemService(Context.SENSOR_SERVICE) के माध्यम से उपलब्ध है। यह सेंसर की सूची प्राप्त करने, एक विशिष्ट डिफ़ॉल्ट सेंसर प्राप्त करने और श्रोताओं को पंजीकृत/अपंजीकृत करने के तरीके प्रदान करता है। SensorManager एक सिंगलटन है — पूरे एप्लिकेशन के लिए एक इंस्टेंस।

सेंसर उपलब्धता की जाँच

सेंसर का उपयोग करने से पहले, आपको इसकी उपलब्धता की जाँच करनी चाहिए। getDefaultSensor(type) विधि null लौटाती है यदि सेंसर डिवाइस पर मौजूद नहीं है। बिना जाँच के null प्राप्त करना श्रोता पंजीकृत करते समय NullPointerException का कारण बनेगा। getSensorList(type) विधि सभी सेंसर की सूची लौटाती है।

kotlin
fun checkSensorAvailability(type: Int): Boolean {
    val sensorManager =
        getSystemService(Context.SENSOR_SERVICE) as SensorManager
    return sensorManager.getDefaultSensor(type) != null
}

// उपयोग:
if (checkSensorAvailability(Sensor.TYPE_GYROSCOPE)) {
    Log.d("सेंसर", "जायरोस्कोप उपलब्ध")
}

श्रोता को पंजीकृत और अपंजीकृत करना

श्रोता registerListener(listener, sensor, delay) के माध्यम से पंजीकृत किया जाता है। महत्वपूर्ण: आपको onPause() विधि में unregisterListener(listener) के माध्यम से श्रोता को अपंजीकृत करना होगा। यदि ऐसा नहीं किया जाता है, तो एप्लिकेशन सेंसर इवेंट प्राप्त करना जारी रखेगा, जिससे बैकग्राउंड में भी बैटरी खत्म होगी। Android 8+ अपंजीकृत श्रोताओं के बारे में logcat में चेतावनी दिखाता है।

सटीकता परिवर्तनों को संभालना

onAccuracyChanged(sensor, accuracy) विधि तब कॉल की जाती है जब सेंसर की सटीकता बदलती है। मान: SENSOR_STATUS_ACCURACY_HIGH, MEDIUM, LOW और UNRELIABLE। UNRELIABLE प्राप्त करने पर, सटीकता बहाल होने तक सेंसर डेटा को अनदेखा किया जाना चाहिए। उदाहरण के लिए, मैग्नेटोमीटर को कैलिब्रेशन की आवश्यकता होती है — डिवाइस को आठ की आकृति में हिलाना।

Kotlin में सेंसर के साथ काम करने के कोड उदाहरण

आइए Kotlin के साथ Android एप्लिकेशन में Sensors API के उपयोग के व्यावहारिक उदाहरण देखें। पहला उदाहरण — एक्सीलरोमीटर का उपयोग करके स्क्रीन ओरिएंटेशन निर्धारित करना। दूसरा — कैलिब्रेशन के साथ मैग्नेटोमीटर डेटा पढ़ना। तीसरा — स्टेप काउंटर का उपयोग करके स्टेप डिटेक्टर।

डिवाइस ओरिएंटेशन निर्धारित करना

ओरिएंटेशन निर्धारित करने के लिए एक्सीलरोमीटर और मैग्नेटोमीटर के संयोजन का उपयोग किया जाता है। SensorManager.getRotationMatrix() विधि रोटेशन मैट्रिक्स की गणना करती है, और getOrientation() pitch, roll और azimuth कोण निकालता है। Azimuth (अज़ीमुथ) — रेडियन में चुंबकीय उत्तर के सापेक्ष कोण।

kotlin
val gravity = FloatArray(3)
val geomagnetic = FloatArray(3)
val rotationMatrix = FloatArray(9)
val orientation = FloatArray(3)

SensorManager.getRotationMatrix(
    rotationMatrix, null, gravity, geomagnetic
)
SensorManager.getOrientation(rotationMatrix, orientation)
// orientation[0] — azimuth, [1] — pitch, [2] — roll
val azimuthDeg = Math.toDegrees(orientation[0].toDouble())

स्टेप काउंटर के साथ स्टेप डिटेक्टर

स्टेप काउंटर (TYPE_STEP_COUNTER) अंतिम डिवाइस रिबूट के बाद से उपयोगकर्ता द्वारा उठाए गए कदमों की कुल संख्या लौटाता है। सेंसर हार्डवेयर स्तर पर काम करता है — यह तब भी सक्रिय रहता है जब एप्लिकेशन नहीं चल रहा हो। प्रति सत्र कदम प्राप्त करने के लिए, आपको प्रारंभिक मान सहेजना और अंतर की गणना करनी होगी।

kotlin
var initialSteps = 0
var isInitialized = false

override fun onSensorChanged(event: SensorEvent) {
    if (event.sensor.type == Sensor.TYPE_STEP_COUNTER) {
        if (!isInitialized) {
            initialSteps = event.values[0].toInt()
            isInitialized = true
        }
        val currentSteps = event.values[0].toInt()
        val sessionSteps = currentSteps - initialSteps
        Log.d("कदम", "प्रति सत्र कदम: $sessionSteps")
    }
}

लाइट सेंसर का उपयोग करके अनुकूली चमक

प्रकाश सेंसर पर्यावरणीय परिस्थितियों के अनुसार इंटरफ़ेस को अनुकूलित करने की अनुमति देता है। कम रोशनी में (10 lx से कम), आप डार्क मोड पर स्विच कर सकते हैं। तेज़ धूप में (10000 lx से अधिक), आप कंट्रास्ट बढ़ा सकते हैं। शोर फ़िल्टरिंग के लिए अंतिम 5 मानों का मूविंग एवरेज उपयोग किया जाता है।

वर्चुअल सेंसर और फ़्यूज़न एल्गोरिदम

Android कई वर्चुअल सेंसर प्रदान करता है जिनका कोई सीधा हार्डवेयर समकक्ष नहीं है। एक वर्चुअल सेंसर भौतिक सेंसर के संयोजन के आधार पर अपनी रीडिंग की गणना करता है। यह डेवलपर पर बोझ कम करता है — सिस्टम स्वयं डेटा फ़्यूज़न एल्गोरिदम लागू करता है।

Gravity और Linear Acceleration

Gravity (TYPE_GRAVITY) सेंसर लो-पास फ़िल्टर का उपयोग करके एक्सीलरोमीटर रीडिंग से गुरुत्वाकर्षण घटक निकालता है। Linear Acceleration (TYPE_LINEAR_ACCELERATION), इसके विपरीत, गुरुत्वाकर्षण को हटाता है और केवल डिवाइस के रैखिक त्वरण को छोड़ता है। Gravity और Linear Acceleration का योग कच्ची एक्सीलरोमीटर रीडिंग देता है।

Rotation Vector

Rotation Vector — सबसे जटिल वर्चुअल सेंसर। यह जायरोस्कोप (उच्च-आवृत्ति परिवर्तन), एक्सीलरोमीटर (गुरुत्वाकर्षण वेक्टर) और मैग्नेटोमीटर (उत्तर के सापेक्ष ओरिएंटेशन) से डेटा को जोड़ता है। परिणाम एक क्वाटरनियन है जो अंतरिक्ष में डिवाइस के पूर्ण ओरिएंटेशन का वर्णन करता है। इसका उपयोग AR एप्लिकेशन और VR हेडसेट में किया जाता है।

Game Rotation Vector

Game Rotation Vector — मैग्नेटोमीटर के उपयोग के बिना Rotation Vector का एक सरलीकृत संस्करण। यह कम अज़ीमुथ सटीकता देता है लेकिन उच्च अपडेट दर और स्थिरता देता है। यह गेम के लिए अनुशंसित है जहां उत्तर के सापेक्ष पूर्ण ओरिएंटेशन के बजाय कम विलंबता महत्वपूर्ण है।

सेंसर के साथ काम करते समय बैटरी ऑप्टिमाइज़ेशन

सेंसर डिवाइस के सबसे अधिक बिजली की खपत करने वाले घटकों में से हैं। अधिकतम पोलिंग दर पर एक्सीलरोमीटर और जायरोस्कोप 3–4 घंटे के निरंतर संचालन में बैटरी खत्म कर सकते हैं। सेंसर उपयोग को अनुकूलित करना Sensors API का उपयोग करने वाले किसी भी एप्लिकेशन के लिए एक महत्वपूर्ण कार्य है।

इष्टतम विलंब चुनना

बिना आवश्यकता के SENSOR_DELAY_FASTEST का उपयोग न करें। UI एनिमेशन के लिए, SENSOR_DELAY_UI (60 ms) पर्याप्त है। स्क्रीन ओरिएंटेशन डिटेक्शन के लिए — SENSOR_DELAY_NORMAL (200 ms)। दर जितनी अधिक होगी, प्रोसेसर उतना ही अधिक समय सक्रिय अवस्था में बिताता है। NORMAL और FASTEST के बीच बिजली की खपत में 10x तक का अंतर होता है।

बैकग्राउंड में श्रोताओं को अपंजीकृत करना

Android 8.0 (API 26) से शुरू करके, बैकग्राउंड एप्लिकेशन कम दर पर सेंसर इवेंट प्राप्त करते हैं। Android 12+ में, Motion और Position सेंसर तक बैकग्राउंड पहुँच के लिए BODY_SENSORS_BACKGROUND अनुमति की आवश्यकता होती है। जब एप्लिकेशन बैकग्राउंड में जाता है तो श्रोता को अपंजीकृत करें — यह डिवाइस की बैटरी लाइफ बढ़ाता है।

बैच प्रोसेसिंग और FIFO बफ़र

registerListener(listener, sensor, delay, maxReportLatencyUs) विधि के माध्यम से बैच प्रोसेसिंग का उपयोग करें। maxReportLatencyUs पैरामीटर माइक्रोसेकंड में अधिकतम इवेंट डिलीवरी विलंबता सेट करता है। 1000000 (1 सेकंड) के मान के साथ, इवेंट सेंसर के FIFO बफ़र में जमा होते हैं और प्रति सेकंड एक बार वितरित किए जाते हैं — प्रोसेसर कम बार जागता है।

अक्सर पूछे जाने वाले प्रश्न

सभी Android डिवाइस पर कौन से सेंसर मौजूद हैं?

न्यूनतम सेट एक एक्सीलरोमीटर और मैग्नेटोमीटर है। ये दो सेंसर 95% से अधिक डिवाइस पर मौजूद हैं। जायरोस्कोप, प्रकाश सेंसर और प्रॉक्सिमिटी सेंसर — 70–80% आधुनिक मॉडलों पर। अन्य सेंसर (दबाव, तापमान, आर्द्रता, स्टेप काउंटर) कम आम हैं और डिवाइस की मूल्य श्रेणी पर निर्भर करते हैं।

TYPE_ACCELEROMETER और TYPE_LINEAR_ACCELERATION में क्या अंतर है?

TYPE_ACCELEROMETER गुरुत्वाकर्षण सहित पूर्ण त्वरण लौटाता है (9.8 m/s²)। TYPE_LINEAR_ACCELERATION गुरुत्वाकर्षण को छोड़कर त्वरण लौटाता है — केवल डिवाइस की गति का त्वरण। यदि डिवाइस स्थिर पड़ा है, तो एक्सीलरोमीटर Z अक्ष के साथ 9.8 m/s² दिखाएगा, जबकि Linear Acceleration सभी अक्षों पर 0 दिखाएगा।

कैसे जाँचें कि आवश्यक सेंसर डिवाइस पर उपलब्ध है या नहीं?

उपयुक्त कॉन्स्टेंट के साथ getPackageManager().hasSystemFeature() का उपयोग करें: FEATURE_SENSOR_ACCELEROMETER, FEATURE_SENSOR_GYROSCOPE, FEATURE_SENSOR_PROXIMITY और अन्य। एक वैकल्पिक तरीका getDefaultSensor(type) को कॉल करना और null के लिए परिणाम की जाँच करना है। पहला तरीका इनिशियलाइज़ेशन के दौरान जाँच के लिए बेहतर है।

सेंसर मानों में उतार-चढ़ाव क्यों होता है और उन्हें कैसे स्मूथ करें?

सेंसर से कच्चे डेटा में शोर होता है। स्मूथ करने के लिए, लो-पास फ़िल्टर का उपयोग करें: newValue = alpha * rawValue + (1 — alpha) * previousValue। 0.1–0.3 का alpha गुणांक प्रतिक्रिया और स्मूथनेस के बीच एक अच्छा संतुलन प्रदान करता है। जायरोस्कोप के लिए, शून्य ड्रिफ्ट को हटाने के लिए हाई-पास फ़िल्टर भी लागू किया जाता है।

क्या बैकग्राउंड में सेंसर का उपयोग किया जा सकता है?

हाँ, लेकिन सीमाओं के साथ। Android 8.0 से शुरू करके, बैकग्राउंड एप्लिकेशन के लिए सेंसर इवेंट दर कम हो जाती है। Android 12 से शुरू करके, बैकग्राउंड सेंसर एक्सेस के लिए BODY_SENSORS_BACKGROUND अनुमति की आवश्यकता होती है। बैकग्राउंड कार्य के लिए, नोटिफिकेशन के साथ Foreground Service का उपयोग करने की अनुशंसा की जाती है।

सारांश

  • Sensors API — SensorManager के माध्यम से डिवाइस के हार्डवेयर सेंसर से डेटा प्राप्त करने के लिए एक एकीकृत Android इंटरफ़ेस।
  • तीन श्रेणियाँ — Motion (एक्सीलरोमीटर, जायरोस्कोप), Position (मैग्नेटोमीटर) और Environment (प्रकाश, दबाव) विभिन्न संचालन सिद्धांतों और अनुप्रयोगों के साथ।
  • वर्चुअल सेंसर — Gravity, Linear Acceleration और Rotation Vector भौतिक सेंसर से डेटा फ़्यूज़न पर आधारित हैं और इनका कोई हार्डवेयर समकक्ष नहीं है।
  • अनुकूलन — सही विलंब चुनना (SENSOR_DELAY_NORMAL, UI, GAME, FASTEST) और बैच प्रोसेसिंग का उपयोग बिजली की खपत को 60% तक कम करता है।
  • सीमाएँ — Android 8+ बैकग्राउंड में सेंसर दर कम करता है, Android 12+ बैकग्राउंड एक्सेस के लिए BODY_SENSORS_BACKGROUND की आवश्यकता होती है।
  • बुनियादी जाँच — श्रोता पंजीकृत करने से पहले, getDefaultSensor या hasSystemFeature के माध्यम से सेंसर उपलब्धता की जाँच करें।
  • शोर को स्मूथ करने के लिए लो-पास फ़िल्टर का उपयोग करें और बैटरी बचाने के लिए बैकग्राउंड में जाते समय श्रोता को अपंजीकृत करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें