79583241

Date: 2025-04-20 09:56:54
Score: 0.5
Natty:
Report link

Detect Back and Home Button Presses in AccessibilityService

Override onAccessibilityEvent()

You can listen for TYPE_WINDOW_STATE_CHANGED or TYPE_WINDOW_CONTENT_CHANGED events and check which app or activity is currently in the foreground.

Back Button Detection

Back press usually results in a window change or app closure, so you can infer it by comparing the current and previous window package names or activity classes.

Home Button Detection

When Home is pressed, your current app/activity will be replaced by the launcher/home screen.

You can follow the below class for detecting Back and Home button actions using AccessibilityService.

I hope it will be helpful for you

class MyAccessibilityService : AccessibilityService() {

    private var previousPackageName: String? = null

    override fun onAccessibilityEvent(event: AccessibilityEvent) {
        if (event.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
            val currentPackage = event.packageName?.toString()

            // Detect HOME press
            if (isLauncherApp(currentPackage)) {
                Log.d("AccessService", "Home button pressed")
            }

            // Detect BACK press (indirectly)
            if (previousPackageName != null && currentPackage != previousPackageName) {
                Log.d("AccessService", "Possibly back button pressed (window changed)")
            }

            previousPackageName = currentPackage
        }
    }

    override fun onInterrupt() {}

    private fun isLauncherApp(packageName: String?): Boolean {
        val intent = Intent(Intent.ACTION_MAIN)
        intent.addCategory(Intent.CATEGORY_HOME)
        val resolveInfo = packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)
        return packageName == resolveInfo?.activityInfo?.packageName
    }
}
Reasons:
  • RegEx Blacklisted phrase (1.5): resolveInfo?
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Er.Prem Singh daksha