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

एंड्रॉइड में एक्टिविटी में होम की प्रेस कैसे डिटेक्ट करें?

एंड्रॉइड में होम बटन प्रेस डिटेक्शन

यह गाइड onUserLeaveHint() लाइफसाइकिल मेथड का उपयोग करके होम बटन प्रेस डिटेक्ट करने का तरीका बताता है, और इसकी सीमाओं को स्पष्ट करता है।

महत्वपूर्ण: सीमाएं

⚠️ नोट: एंड्रॉइड सुरक्षा कारणों से होम बटन को सीधे इंटरसेप्ट या ब्लॉक करने की अनुमति नहीं देता। onUserLeaveHint() तब कॉल होता है जब यूजर ऐप छोड़कर जाता है (होम, रीसेंट ऐप्स, या अन्य ऐप लॉन्च), लेकिन यह केवल होम बटन के लिए विशिष्ट नहीं है।

लेआउट (activity_main.xml)

<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="24dp">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="होम बटन दबाकर देखें"
        android:textSize="24sp"
        android:gravity="center" />
</LinearLayout>

MainActivity.java

import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private TextView textView;

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

        textView = findViewById(R.id.textView);
    }

    @Override
    protected void onUserLeaveHint() {
        super.onUserLeaveHint();
        
        // यह तब कॉल होता है जब यूजर ऐप छोड़कर जाता है
        textView.setText("ऐप बैकग्राउंड में गया (होम/रीसेंट/अन्य ऐप)");
        Toast.makeText(this, "onUserLeaveHint() कॉल हुआ", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // यह भी कॉल होता है जब ऐप बैकग्राउंड में जाता है
    }

    @Override
    protected void onStop() {
        super.onStop();
        // ऐप पूरी तरह से छिप जाने पर
    }

    @Override
    protected void onResume() {
        super.onResume();
        textView.setText("ऐप फोरग्राउंड में वापस आया");
    }
}

वैकल्पिक दृष्टिकोण: ब्रॉडकास्ट रिसीवर (सीमित)

एंड्रॉइड 4.0+ में, होम बटन के लिए कोई पब्लिक ब्रॉडकास्ट नहीं है। कुछ कस्टम लॉन्चर्स इंटेंट भेज सकते हैं, लेकिन यह विश्वसनीय नहीं है।

किओस्क मोड / लॉन्चर ऐप के लिए

यदि आप लॉन्चर या किओस्क ऐप बना रहे हैं:

<!-- AndroidManifest.xml में -->
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

सारांश

  • onUserLeaveHint() - यूजर ऐप छोड़कर जाने वाला है (होम, रीसेंट, कॉल, आदि)
  • onPause() - ऐप फोकस खो रहा है
  • onStop() - ऐप अब विजिबल नहीं है
  • होम बटन को सीधे डिटेक्ट/ब्लॉक नहीं किया जा सकता (सिस्टम सुरक्षा)
  • किओस्क मोड के लिए: डिवाइस एडमिन API या Android Enterprise का उपयोग करें
  1. Android में ScrollView के अंत का पता कैसे लगाएं? Android में ScrollView के अंत का पता कैसे लगाएं?

    ScrollView स्क्रॉल अंत पहचान यह उदाहरण दर्शाता है कि ViewTreeObserver.OnScrollChangedListener का उपयोग करके ScrollView के शीर्ष या अंत तक पहुंचने का पता कैसे लगाएं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में ScrollView और WebView (activity_main.xml) &l

  1. एंड्रॉइड में ऑडियो/रिंगर मोड कैसे डिटेक्ट करें एंड्रॉइड में ऑडियो/रिंगर मोड कैसे डिटेक्ट करें

    AudioManager का उपयोग करके डिवाइस का रिंगर मोड (साइलेंट, वाइब्रेट, नॉर्मल) जांचना एंड्रॉइड में AudioManager सिस्टम सर्विस के माध्यम से वर्तमान रिंगर मोड का पता लगाया जा सकता है। यह ऐप्स को यूजर की साउंड प्राथमिकताओं के अनुसार व्यवहार समायोजित करने की अनुमति देता है (जैसे: गेम में साउंड म्यूट करना यद

  1. Android में 5 सेकंड यूजर इनएक्टिविटी कैसे डिटेक्ट करें? Android में 5 सेकंड यूजर इनएक्टिविटी कैसे डिटेक्ट करें?

    यह उदाहरण दर्शाता है कि Handler और onUserInteraction() का उपयोग करके Android में यूजर इनएक्टिविटी (कोई टच/की इवेंट नहीं) को कैसे डिटेक्ट किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-