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

时间:2017-07-15 17:25:30

标签: android

我有一个应用程序,显示类似于Facebook Messenger应用程序的聊天头泡泡。我希望能够只在用户进入主屏幕时显示,而在您转到其他应用时不关注您。反正知道用户何时进入设备主屏幕?如果可能的话,无法找到有关此问题的更多信息,任何人都可以向我指出正确的方向吗?谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用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");
   }
}

并将其添加到您的清单中:

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