android - 如何判断用户是否在设备主屏幕上

标签 android

我有一个应用程序可以显示类似于 Facebook Messenger 应用程序的聊天头像气泡。我希望能够让它只在用户位于主屏幕时出现,而不是在您转到其他应用程序时关注您。无论如何都知道用户什么时候在设备主屏幕上?找不到太多关于此的信息,如果可能的话,任何人都可以指出我正确的方向吗?谢谢

最佳答案

您可以通过使用 Intent.CATEGORY_HOMEIntent.ACTION_MAIN 来获取正在运行的任务并过滤它们:

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
ComponentName currentTask = taskInfo.get(0).topActivity;

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_HOME);
mPackageManager = getPackageManager();

List<ResolveInfo> appList = mPackageManager.queryIntentActivities(mainIntent, 0);
for(int i = 0; i < appList.size(); i++) {
ResolveInfo apl = appList.get(i);
if(currentTask.getPackageName().equals(apl.activityInfo.packageName)) {
    Log.e(TAG, "ONHOMESCREEN");
   }
}

并将其添加到您的 list 中:

<uses-permission android:name="android.permission.GET_TASKS"/>

关于android - 如何判断用户是否在设备主屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45120913/

相关文章:

android - Google I/O Android 示例应用程序

javascript - 阻止 google chrome 下载视频 - Android Chrome 浏览器

Android Room 增加连接池限制

android - 在 Android 设备上的 fragment 着色器中使用循环变量进行数组索引

java - 从 html 文件中收集文本数据

android - 9-patch 效果不佳

android - 在 Canvas 上用图形编号替换数字编号

android - 来自图像 flutter firebase 的文本识别

android - HttpPost 不工作!

android - 无法使用 iframe 标签在 WebView 内播放视频?