Intereting Posts
Android: Как остановить воспроизведение мультимедиа (mp3) при появлении конкретных миллисекунд? Метод FitnessActivities.getName (int i) устарел, какой метод использовать вместо этого? Как центрировать взгляд с помощью RelativeLayout? Метод вызова Android при нажатии уведомления Как использовать фрагмент диалога? (ShowDialog устарел) Android Несколько SQLite DBite DB адаптеров в Android? Камера Android не работает. StartPreview не работает ViewPager не поддерживает layout_height = wrap_content Могу ли я эмулировать обновление приложения с помощью АБР? Android: в чем разница между разрешением и плотностью? Перечисление папок и файлов с помощью Google Drive SDK V2 Получить координаты из аппаратного GPS Как включить / отключить bluetooth программно в android Ошибка идентификации идентификатора найдена для атрибута даже после использования пространства имен http://schemas.android.com/apk/res-auto Android Volley – BasicNetwork.performRequest: неожиданный код ответа 400

Android: программно откройте диалоговое окно «Недавние приложения»

Я хотел бы иметь возможность открыть диалог «Недавние приложения» из моего приложения. Это диалоговое окно, открытое длинным нажатием кнопки «домой». Я программирую для Android 4.1 или ранее. Я нашел способ сделать это, выполнив специальный AccessibilityService и вызвав AccessibilityService.performGlobalAction (GLOBAL_ACTION_RECENTS), но для этого требуется возможность доступности на телефоне, что не очень желательно. Есть ли другой способ открыть этот диалог из приложения?

Спасибо за помощь!

Solutions Collecting From Web of "Android: программно откройте диалоговое окно «Недавние приложения»"

Вы не можете получить доступ к этому. Тем не менее, это не слишком сложно катиться. Метод getRecentTasks () возвращает список недавно запущенных приложений. Просто возьмите список и добавьте к нему свой собственный пользовательский интерфейс.

Одно из преимуществ этого заключается в том, что по умолчанию, по крайней мере, в более старых версиях Android, отображается только около 8 приложений. Если вы катите свои собственные, вы можете показать столько, сколько хотите.

Извините, но вы можете активировать активность последних приложений.

StatusBarManagerService реализует общедоступный метод, который можно использовать посредством отражения.

Вы можете использовать следующий код:

 Class serviceManagerClass = Class.forName("android.os.ServiceManager"); Method getService = serviceManagerClass.getMethod("getService", String.class); IBinder retbinder = (IBinder) getService.invoke(serviceManagerClass, "statusbar"); Class statusBarClass = Class.forName(retbinder.getInterfaceDescriptor()); Object statusBarObject = statusBarClass.getClasses()[0].getMethod("asInterface", IBinder.class).invoke(null, new Object[] { retbinder }); Method clearAll = statusBarClass.getMethod("toggleRecentApps"); clearAll.setAccessible(true); clearAll.invoke(statusBarObject); 

Повеселись 🙂

Это можно сделать, используя TOGGLE_RECENTS Intent.

 Intent intent = new Intent ("com.android.systemui.recent.action.TOGGLE_RECENTS"); intent.setComponent (new ComponentName ("com.android.systemui", "com.android.systemui.recent.RecentsActivity")); startActivity (intent);