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