एंड्रॉइड में होम बटन प्रेस डिटेक्शन
यह गाइड 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 का उपयोग करें