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

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

एंड्रॉइड में लाइट (परिवेश प्रकाश) सेंसर सपोर्ट जांचें

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

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

</LinearLayout>

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

package com.example.lightsensorcheck;

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

        checkLightSensorSupport();
    }

    private void checkLightSensorSupport() {
        Sensor lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

        if (lightSensor != 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",
                lightSensor.getName(),
                lightSensor.getVendor(),
                lightSensor.getVersion(),
                lightSensor.getMaximumRange(),
                lightSensor.getResolution(),
                lightSensor.getPower(),
                lightSensor.getMinDelay()
            );
            sensorStatus.append("\n\n" + info);
        } else {
            sensorStatus.setText("✗ लाइट सेंसर सपोर्ट नहीं करता");
            sensorStatus.setTextColor(0xFFF44336);
        }
    }
}

लाइट सेंसर विवरण

विशेषताविवरण
मापता हैपरिवेश प्रकाश तीव्रता (लक्स में)
सामान्य रेंज1 - 65,000+ लक्स
संदर्भ मानअंधेरा कमरा: 10-50, ऑफिस: 300-500, धूप: 10,000-100,000+
प्रकारफोटोडायोड/फोटोट्रांजिस्टर
मुख्य उपयोगऑटो-ब्राइटनेस, कीबोर्ड बैकलाइट, कैमरा एक्सपोजर
रिपोर्टिंग मोडCONTINUOUS या ON_CHANGE

लाइट सेंसर डेटा पढ़ना

SensorEventListener lightListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        float lux = event.values[0];
        
        runOnUiThread(() -> {
            luxText.setText(String.format("प्रकाश: %.1f लक्स", lux));
            
            // प्रकाश स्तर वर्गीकरण
            String level;
            int color;
            if (lux < 50) { level = "अंधेरा"; color = 0xFF333333; }
            else if (lux < 200) { level = "कम"; color = 0xFF8D6E63; }
            else if (lux < 500) { level = "सामान्य (इंडोर)"; color = 0xFF4CAF50; }
            else if (lux < 10000) { level = "उज्ज्वल (आउटडोर छाया)"; color = 0xFFFFC107; }
            else { level = "बहुत उज्ज्वल (सीधी धूप)"; color = 0xFFF44336; }
            
            levelText.setText(level);
            levelText.setTextColor(color);
        });
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};

ऑटो-ब्राइटनेस कार्यान्वयन (सरलीकृत)

// लक्स से स्क्रीन ब्राइटनेस मैपिंग (0-255)
private int luxToBrightness(float lux) {
    if (lux <= 10) return 20;      // न्यूनतम
    if (lux <= 50) return 50;
    if (lux <= 200) return 100;
    if (lux <= 500) return 150;
    if (lux <= 1000) return 200;
    if (lux <= 5000) return 230;
    return 255; // अधिकतम
}

// सिस्टम ब्राइटनेस सेट करना (WRITE_SETTINGS परमिशन चाहिए)
Settings.System.putInt(getContentResolver(), 
    Settings.System.SCREEN_BRIGHTNESS, brightness);
Settings.System.putInt(getContentResolver(), 
    Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);

महत्वपूर्ण नोट्स

  • लगभग सभी स्मार्टफोन में लाइट सेंसर होता है (ऑटो-ब्राइटनेस के लिए)
  • कुछ बजट डिवाइसेज में नहीं हो सकता
  • स्क्रीन के ऊपर (नॉच/बेजल में) स्थित होता है
  • केस/स्क्रीन प्रोटेक्टर सेंसर को ब्लॉक कर सकते हैं
  • कैलिब्रेशन डिवाइस-विशिष्ट होता है

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

  1. वास्तविक डिवाइस पर चलाएं
  2. "सपोर्ट करता है" दिखना चाहिए
  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: