Android:以编程方式打开 "Recent Apps"对话框

标签 android

我希望能够从我的应用程序中打开“最近使用的应用程序”对话框。这是通过长按主页按钮打开的对话框。我正在为 Android 4.1 或更早版本编程。我通过实现自定义 AccessibilityService 并调用 AccessibilityService.performGlobalAction(GLOBAL_ACTION_RECENTS) 找到了一种方法,但这需要在手机上启用辅助功能,这不是很理想。有没有其他方法可以从应用程序打开此对话框?

感谢您的帮助!

最佳答案

此代码不适用于牛轧糖或更高版本

可以触发最近的应用程序 Activity 。

StatusBarManagerService 实现了一个公共(public)方法,您可以通过反射使用它。

您可以使用以下代码:

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);

玩得开心

关于Android:以编程方式打开 "Recent Apps"对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267482/

相关文章:

java - AsyncTask 中通过代码旋转屏幕崩溃

android - 是否可以在android数据库中的文本字段上应用主键

android - 如何将用户从移动应用程序重定向到移动网络浏览器?

Android操作栏不显示溢出

android - 应用程序在实现异步 Android 时崩溃

android - Android list 中的 strings.xml 冲突

android - 找不到满足版本限制的 'androidx.arch.core:core-common' 版本

android - 删除 TextView 中不需要的行间距

java - 在向 Android ListView 添加页脚时需要帮助,这样它就不会与 ListView 的条目重叠

android - Android 的 3D map 库