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

एंड्रॉइड डिवाइस के होम बटन क्लिक को कैसे डिसेबल करें?

एंड्रॉइड में होम बटन व्यवहार को नियंत्रित करना

⚠️ महत्वपूर्ण चेतावनी: आधुनिक एंड्रॉइड वर्जन (API 21+) में होम बटन को पूरी तरह से डिसेबल करना **संभव नहीं है** और सुरक्षा नीति के विरुद्ध है। यह गाइड केवल ऐतिहासिक संदर्भ और कियोस्क मोड विकल्पों के लिए है।

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

Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट XML

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="कियोस्क मोड डेमो"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

चरण 3: MainActivity - ऐप को फोरग्राउंड में रखने का प्रयास

MainActivity.java:

package com.medkart.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onPause() {
        super.onPause();
        // जब ऐप बैकग्राउंड में जाए तो इसे वापस फोरग्राउंड में लाने का प्रयास
        // ध्यान दें: यह आधुनिक एंड्रॉइड पर विश्वसनीय रूप से काम नहीं करता
        ActivityManager activityManager = (ActivityManager) getApplicationContext()
                .getSystemService(Context.ACTIVITY_SERVICE);
        activityManager.moveTaskToFront(getTaskId(), 0);
    }
}

चरण 4: Manifest - लॉन्चर और होम कैटेगरी (पुराना तरीका)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.medkart.sample">

    <uses-permission android:name="android.permission.REORDER_TASKS" />

    <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" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <!-- ⚠️ ये कैटेगरी होम बटन को "हाईजैक" करने का प्रयास करती हैं -->
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

    </application>
</manifest>

❌ यह तरीका अब काम क्यों नहीं करता?

✅ आधुनिक विकल्प: कियोस्क मोड / लॉक टास्क मोड

एंटरप्राइज/कियोस्क ऐप्स के लिए, Lock Task Mode का उपयोग करें:

1. डिवाइस ओनर ऐप के रूप में सेट करें

// dpm (DevicePolicyManager) के माध्यम से
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName adminComponent = new ComponentName(this, AdminReceiver.class);

if (dpm.isDeviceOwnerApp(getPackageName())) {
    String[] packages = {getPackageName()};
    dpm.setLockTaskPackages(adminComponent, packages);
}

2. लॉक टास्क मोड शुरू करें

// एक्टिविटी में
startLockTask(); // ऐप को पिन करता है; होम/रिसेंट बटन डिसेबल करता है

// रोकने के लिए:
stopLockTask();

3. Manifest में डिवाइस एडमिन रिसीवर

<receiver
    android:name=".AdminReceiver"
    android:description="@string/device_admin_description"
    android:label="@string/device_admin_label"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/device_admin_receiver" />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>

📱 अन्य विकल्प

  • Screen Pinning (API 21+): सेटिंग्स → सुरक्षा → स्क्रीन पिनिंग सक्षम करें
  • Android Management API: एंटरप्राइज डिवाइस प्रबंधन के लिए
  • कस्टम लॉन्चर: अपना लॉन्चर बनाएं जो डिफ़ॉल्ट के रूप में सेट हो

ऐप चलाएं

डिवाइस कनेक्ट करें, Run पर क्लिक करें। नोट: होम बटन दबाने पर ऐप बंद हो जाएगा (यही सही व्यवहार है)।

  1. iOS डिवाइस पर होम बटन क्लिक स्पीड कैसे एडजस्ट करें iOS डिवाइस पर होम बटन क्लिक स्पीड कैसे एडजस्ट करें

    iOS डिवाइस पर आप होम बटन दबाने के लिए आवश्यक गति को आसानी से एडजस्ट कर सकते हैं ताकि डिवाइस प्रतिक्रिया दे सके। आमतौर पर आपको ऐप-स्विचिंग के लिए होम बटन को डबल-प्रेस करना होगा और एक्सेसिबिलिटी शॉर्टकट के लिए ट्रिपल-प्रेस करना होगा। इन क्रियाओं को करने के लिए आवश्यक गति को धीमा करना एक्सेसिबिलिटी का

  1. एंड्रॉइड में होम बटन से कैमरा कैसे लॉन्च करें एंड्रॉइड में होम बटन से कैमरा कैसे लॉन्च करें

    जहां कुछ स्मार्टफोन में कैमरा ऐप लॉन्च करने के लिए एक समर्पित बटन होता है, वहीं अन्य को ऐप ड्रॉअर (या होमस्क्रीन) से मैन्युअल रूप से कैमरा ऐप लॉन्च करने की आवश्यकता होती है। एंड्रॉइड उन कस्टमाइज़ेशन विकल्पों के लिए जाना जाता है जो यह प्रदान करता है, और अब आपके एंड्रॉइड स्मार्टफोन पर होम बटन को कैमरा

  1. एंड्रॉइड को ऐप्स ऑटो-लॉन्च करने से रोकें: चरण-दर-चरण गाइड एंड्रॉइड को ऐप्स ऑटो-लॉन्च करने से रोकें: चरण-दर-चरण गाइड

    एंड्रॉइड स्मार्टफोन अपने उपयोगकर्ताओं को सर्वश्रेष्ठ एंड्रॉइड अनुभव के लिए बेहतरीन सुविधाएं प्रदान करते हैं। ऐसे समय होते हैं जब आप अपने डिवाइस पर कुछ ऐप्स को फोन चालू करते ही ऑटो-स्टार्ट होते हुए अनुभव करते हैं। कुछ उपयोगकर्ताओं को यह भी लगता है कि जब ऐप्स ऑटो-स्टार्ट होते हैं तो उनका डिवाइस धीमा ह

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
एंड्रॉइड वर्जनव्यवहार
Android 4.x और नीचेHOME कैटेगरी के साथ ऐप लॉन्चर बन सकता था
Android 5.0+ (Lollipop)सिस्टम होम बटन को हमेशा संभालता है; ऐप्स इसे इंटरसेप्ट नहीं कर सकते
Android 9.0+ (Pie)जेस्चर नेविगेशन; होम बटन भौतिक नहीं रह गया