Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड मोबाइल प्रेशर सेंसर सपोर्ट करता है या नहीं, कैसे जांचें?

एंड्रॉइड में प्रेशर (दबाव/बैरोमीटर) सेंसर सपोर्ट जांचें

यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_PRESSURE का उपयोग करके कैसे जांचा जाए कि डिवाइस में बैरोमीटर (वायुमंडलीय दबाव सेंसर) है या नहीं।

चरण 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="#E0F2F1"
        android:text="जांच हो रही है..."/>

</LinearLayout>

चरण 3: एक्टिविटी कोड (src/MainActivity.java)

package com.example.pressurecheck;

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);

        checkPressureSupport();
    }

    private void checkPressureSupport() {
        Sensor pressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);

        if (pressureSensor != null) {
            sensorStatus.setText("✓ प्रेशर सेंसर (बैरोमीटर) सपोर्ट करता है");
            sensorStatus.setTextColor(0xFF4CAF50);
            
            String info = String.format(
                "सेंसर: %s\nवेंडर: %s\nवर्जन: %d\nरेंज: %.1f hPa\nरिजॉल्यूशन: %.3f hPa\nपावर: %.3f mA\nन्यूनतम डिले: %d µs",
                pressureSensor.getName(),
                pressureSensor.getVendor(),
                pressureSensor.getVersion(),
                pressureSensor.getMaximumRange(),
                pressureSensor.getResolution(),
                pressureSensor.getPower(),
                pressureSensor.getMinDelay()
            );
            sensorStatus.append("\n\n" + info);
        } else {
            sensorStatus.setText("✗ प्रेशर सेंसर सपोर्ट नहीं करता");
            sensorStatus.setTextColor(0xFFF44336);
            
            sensorStatus.append("\n\nनोट: बैरोमीटर आमतौर पर मिड-रेंज से हाई-एंड फोन में होता है।\nउपयोग: ऊंचाई मापन, मौसम पूर्वानुमान, फ्लोर डिटेक्शन।");
        }
    }
}

बैरोमीटर सेंसर विवरण

विशेषताविवरण
मापता हैवायुमंडलीय दबाव (hPa / mbar)
सामान्य रेंज300 - 1100 hPa
समुद्र तल पर~1013.25 hPa
रिजॉल्यूशन~0.01 - 0.1 hPa
उपयोगऊंचाई, मौसम परिवर्तन, फ्लोर डिटेक्शन, GPS सहायता
उपलब्धतामिड-रेंज/हाई-एंड फोन (Pixel, Samsung S/Note, OnePlus, आदि)

दबाव से ऊंचाई कैलकुलेट करना

// बैरोमेट्रिक फॉर्मूला (सरलीकृत)
// h = 44330 * (1 - (P/P0)^(1/5.255))
// P = वर्तमान दबाव, P0 = समुद्र तल दबाव (1013.25 hPa)

public float pressureToAltitude(float pressure, float seaLevelPressure) {
    return 44330f * (1f - (float) Math.pow(pressure / seaLevelPressure, 1f / 5.255f));
}

// उपयोग
float currentPressure = event.values[0]; // hPa में
float altitude = pressureToAltitude(currentPressure, 1013.25f);
// नोट: मौसम परिवर्तन से दबाव बदलता है, इसलिए निरपेक्ष ऊंचाई सटीक नहीं
// सापेक्ष ऊंचाई परिवर्तन (फ्लोर बदलना) अधिक विश्वसनीय

बैरोमीटर डेटा पढ़ना

SensorEventListener pressureListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        float pressure = event.values[0]; // hPa में
        
        runOnUiThread(() -> {
            pressureText.setText(String.format("दबाव: %.2f hPa", pressure));
            altitudeText.setText(String.format("अनुमानित ऊंचाई: %.1f मी", 
                pressureToAltitude(pressure, referencePressure)));
        });
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};

// रेफरेंस दबाव कैलिब्रेट करें (वर्तमान ऊंचाई ज्ञात हो)
float referencePressure = currentPressure; // ज्ञात ऊंचाई पर सेट करें

अनुप्रयोग

  • ऊंचाई/फ्लोर ट्रैकिंग: हाइकिंग, इंडोर नेविगेशन, लिफ्ट डिटेक्शन
  • मौसम निगरानी: दबाव गिरना = तूफान आना, बढ़ना = मौसम साफ होना
  • GPS सहायता: ऊंचाई लॉक तेज करने के लिए
  • फिटनेस: चढ़ाई/उतराई ट्रैकिंग
  • विमानन: केबिन दबाव निगरानी

चरण 4: टेस्ट करें

  1. वास्तविक डिवाइस पर चलाएं
  2. हाई-एंड फोन (Pixel, Galaxy S/Note, OnePlus 7+) पर "सपोर्ट करता है" दिखेगा
  3. बजट/मिड-रेंज फोन में अक्सर नहीं होता

एंड्रॉइड मोबाइल प्रेशर सेंसर सपोर्ट करता है या नहीं, कैसे जांचें?

  1. Android में वर्तमान Wi-Fi 5 GHz बैंड सपोर्ट की जांच कैसे करें Android में वर्तमान Wi-Fi 5 GHz बैंड सपोर्ट की जांच कैसे करें

    परिचयएंड्रॉइड डिवाइस पर वर्तमान Wi-Fi कनेक्शन 5 GHz बैंड को सपोर्ट करता है या नहीं, यह जांचने के लिए `WifiManager.is5GHzBandSupported()` विधि का उपयोग करें।कार्यान्वयन चरणचरण 1: लेआउट (activity_main.xml)<TextView android:id=@+id/text android:layout_width=match_parent android:layout

  1. Android में वर्तमान Wi-Fi हमेशा खोज योग्य है या नहीं जांचें Android में वर्तमान Wi-Fi हमेशा खोज योग्य है या नहीं जांचें

    परिचययह जांचने के लिए कि क्या डिवाइस का Wi-Fi स्कैन हमेशा उपलब्ध मोड में है (अर्थात बैटरी बचत के लिए स्कैन अक्षम नहीं है), `WifiManager.isScanAlwaysAvailable()` का उपयोग करें।कार्यान्वयनचरण 1: लेआउट (activity_main.xml)<TextView android:id=@+id/text android:layout_width=match_parent

  1. Android में वर्तमान में चल रहे ऐप्लिकेशन कैसे जांचें? Android में वर्तमान में चल रहे ऐप्लिकेशन कैसे जांचें?

    यह उदाहरण दर्शाता है कि Android डिवाइस पर वर्तमान में चल रहे टास्क/ऐप्लिकेशन की सूची कैसे प्राप्त की जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:android=https: