Android: programmatically open Overview/Recents screen in API 24+

后端 未结 1 1059
执笔经年
执笔经年 2021-01-12 17:35

I am trying to open the Overview/Recents screen in Android. From Android: Programmatically open "Recent Apps" dialog, I can use the following code:



        
相关标签:
1条回答
  • 2021-01-12 18:25

    Create service extended from AccessibilityService:

    class ExampleAccessService:AccessibilityService() {
        override fun onInterrupt() {
        }
    
        override fun onAccessibilityEvent(event: AccessibilityEvent?) {
        }
    
        fun doAction(){
            performGlobalAction(GLOBAL_ACTION_RECENTS)
    //        performGlobalAction(GLOBAL_ACTION_BACK)
    //        performGlobalAction(GLOBAL_ACTION_HOME)
    //        performGlobalAction(GLOBAL_ACTION_NOTIFICATIONS)
    //        performGlobalAction(GLOBAL_ACTION_POWER_DIALOG)
    //        performGlobalAction(GLOBAL_ACTION_QUICK_SETTINGS)
    //        performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)
        }
    }
    

    Call doAction() where you want action

    Add to Manifest:

    <application
    ...
        <service
            android:name=".ExampleAccessService"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
            android:label="Name of servise" // it will be viewed in Settings->Accessibility->Services
            android:enabled="true"
            android:exported="false" >
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService"/>
            </intent-filter>
            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/accessibility_service_config"/>
        </service>
    ...
    </application>
    

    accessibility_service_config.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
        android:accessibilityEventTypes="typeAllMask"
        android:accessibilityFeedbackType="feedbackAllMask"
        android:accessibilityFlags="flagDefault"
        android:canRetrieveWindowContent="false"
        android:description="your description"
        android:notificationTimeout="100"
        android:packageNames="your app package, ex: ex: com.example.android"
        android:settingsActivity="your settings activity ex: com.example.android.MainActivity" />
    

    for more info look at https://developer.android.com/guide/topics/ui/accessibility/services.html

    0 讨论(0)
提交回复
热议问题