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

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

एंड्रॉइड में ह्यूमिडिटी (आर्द्रता) सेंसर सपोर्ट जांचें

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

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

</LinearLayout>

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

package com.example.humiditycheck;

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

        checkHumiditySupport();
    }

    private void checkHumiditySupport() {
        // सापेक्ष आर्द्रता सेंसर
        Sensor humiditySensor = sensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY);

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

ह्यूमिडिटी सेंसर तथ्य

विशेषताविवरण
मापता हैसापेक्ष आर्द्रता (% RH)
रेंज0% - 100%
स्मार्टफोन में उपलब्धतालगभग कभी नहीं (सैमसंग गैलेक्सी S4 में था, फिर हटा दिया गया)
उपलब्ध डिवाइसकुछ रग्ड फोन, विशेष IoT डिवाइस, वियरेबल्स
API लेवलAPI 14+ (Android 4.0)

आर्द्रता डेटा पढ़ना (यदि उपलब्ध हो)

SensorEventListener humidityListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        float humidity = event.values[0]; // % में
        
        runOnUiThread(() -> {
            humidityText.setText(String.format("आर्द्रता: %.1f%%", humidity));
            
            // कम्फर्ट लेवल
            String comfort;
            if (humidity < 30) comfort = "शुष्क";
            else if (humidity < 60) comfort = "आरामदायक";
            else comfort = "आर्द्र";
            
            comfortText.setText(comfort);
        });
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};

व्यावहारिक विकल्प: मौसम API

// OpenWeatherMap API उदाहरण
// निर्भरता: implementation 'com.squareup.retrofit2:retrofit:2.9.0'

interface WeatherApi {
    @GET("weather")
    Call getWeather(@Query("lat") double lat, 
                                     @Query("lon") double lon,
                                     @Query("appid") String apiKey,
                                     @Query("units") String units);
}

data class WeatherResponse(
    val main: Main,
    val weather: List
) {
    data class Main(val humidity: Int, val temp: Float)
    data class Weather(val description: String)
}

// उपयोग
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.openweathermap.org/data/2.5/")
    .addConverterFactory(GsonConverterFactory.create())
    .build();

WeatherApi api = retrofit.create(WeatherApi.class);
api.getWeather(lat, lon, "YOUR_API_KEY", "metric")
    .enqueue(new Callback() {
        @Override
        public void onResponse(Call call, Response response) {
            int humidity = response.body().main.humidity;
            // UI अपडेट करें
        }
        @Override
        public void onFailure(Call call, Throwable t) {}
    });

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

  1. किसी भी वास्तविक डिवाइस पर चलाएं
  2. "सपोर्ट नहीं करता" दिखना चाहिए (लगभग सभी फोन के लिए)
  3. सैमसंग गैलेक्सी S4 (2013) पर "सपोर्ट करता है" दिख सकता है

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

  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: