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

एंड्रॉइड डिवाइस में फिंगरप्रिंट सेंसर है कैसे जांचें?

एंड्रॉइड में FingerprintManager से फिंगरप्रिंट हार्डवेयर जांचना

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

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 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:layout_marginTop="30dp"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/actionEvent"
        android:textSize="40sp"
        android:layout_marginTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="24dp" />
</LinearLayout>

चरण 3: MainActivity कोड (java/MainActivity.java)

package com.example.myapplication;

import android.hardware.fingerprint.FingerprintManager;
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 {
    TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.M) // API 23+ (फिंगरप्रिंट API)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView actionEvent = findViewById(R.id.actionEvent);
        
        FingerprintManager fingerprintManager = (FingerprintManager) 
            getSystemService(FINGERPRINT_SERVICE);
        
        if (fingerprintManager != null) {
            boolean hasHardware = fingerprintManager.isHardwareDetected();
            boolean hasEnrolled = fingerprintManager.hasEnrolledFingerprints();
            
            String result = "फिंगरप्रिंट हार्डवेयर: " + (hasHardware ? "हां ✓" : "नहीं ✗") + "\n" +
                          "नामांकित फिंगरप्रिंट: " + (hasEnrolled ? "हां ✓" : "नहीं ✗");
            
            actionEvent.setText(result);
        } else {
            actionEvent.setText("FingerprintManager उपलब्ध नहीं (API < 23)");
        }
    }
}

चरण 4: AndroidManifest.xml परमिशन

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.myapplication">
    
    <!-- फिंगरप्रिंट हार्डवेयर जांचने के लिए परमिशन -->
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
    <!-- या एंड्रॉइड 9+ के लिए -->
    <uses-permission android:name="android.permission.USE_BIOMETRIC" />
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

महत्वपूर्ण: मॉडर्न बायोमेट्रिक API (एंड्रॉइड 9+/API 28+)

FingerprintManager डिप्रिकेटेड है। नया BiometricManager उपयोग करें:

import androidx.biometric.BiometricManager;
import androidx.core.content.ContextCompat;

// BiometricManager उपयोग करें
BiometricManager biometricManager = BiometricManager.from(this);
int authResult = biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG);

switch (authResult) {
    case BiometricManager.BIOMETRIC_SUCCESS:
        // बायोमेट्रिक उपलब्ध और नामांकित
        break;
    case BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE:
        // कोई हार्डवेयर नहीं
        break;
    case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE:
        // हार्डवेयर व्यस्त/उपलब्ध नहीं
        break;
    case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:
        // हार्डवेयर है लेकिन कोई फिंगरप्रिंट नामांकित नहीं
        break;
}

फिंगरप्रिंट ऑथेंटिकेशन फ्लो (संक्षिप्त)

// 1. CryptoObject बनाएं
KeyGenerator keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder("key_name", 
    KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
    .setBlockModes(KeyProperties.BLOCK_MODE_CBC)
    .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
    .setUserAuthenticationRequired(true)
    .build();
keyGenerator.init(spec);
SecretKey key = keyGenerator.generateKey();

Cipher cipher = Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + "/" 
    + KeyProperties.BLOCK_MODE_CBC + "/" + KeyProperties.ENCRYPTION_PADDING_PKCS7);
cipher.init(Cipher.ENCRYPT_MODE, key);

// 2. ऑथेंटिकेशन प्रॉम्प्ट दिखाएं
BiometricPrompt biometricPrompt = new BiometricPrompt(this, executor, callback);
BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder()
    .setTitle("फिंगरप्रिंट ऑथेंटिकेशन")
    .setSubtitle("अपना फिंगरप्रिंट रखें")
    .setNegativeButtonText("रद्द करें")
    .build();

biometricPrompt.authenticate(promptInfo);

ऐप टेस्ट करें

चलाएं - "फिंगरप्रिंट हार्डवेयर: हां/नहीं" और "नामांकित फिंगरप्रिंट: हां/नहीं" दिखेगा।

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

    एंड्रॉइड में लाइट (परिवेश प्रकाश) सेंसर सपोर्ट जांचें यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_LIGHT का उपयोग करके कैसे जांचा जाए कि डिवाइस में एंबिएंट लाइट सेंसर है या नहीं। यह ऑटो-ब्राइटनेस के लिए उपयोग होता है। चरण 1: प्रोजेक्ट बनाएं एंड्रॉइड स्टूडियो में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट (res/la

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

    एंड्रॉइड में प्रेशर (दबाव/बैरोमीटर) सेंसर सपोर्ट जांचें यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_PRESSURE का उपयोग करके कैसे जांचा जाए कि डिवाइस में बैरोमीटर (वायुमंडलीय दबाव सेंसर) है या नहीं। चरण 1: प्रोजेक्ट बनाएं एंड्रॉइड स्टूडियो में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट (res/layout/activity_main.x

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

    एंड्रॉइड में ह्यूमिडिटी (आर्द्रता) सेंसर सपोर्ट जांचें यह ट्यूटोरियल दिखाता है कि Sensor.TYPE_RELATIVE_HUMIDITY का उपयोग करके कैसे जांचा जाए कि डिवाइस में सापेक्ष आर्द्रता सेंसर है या नहीं। चरण 1: प्रोजेक्ट बनाएं एंड्रॉइड स्टूडियो में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट (res/layout/activity_main.xml