2017-07-15 56 views
1

我有一个应用程序显示类似于Facebook Messenger应用程序的聊天头泡泡。我希望只有当用户进入主屏幕时才能看到它,而当你转到其他应用程序时,不会跟着你。无论如何要知道用户何时进入设备主屏幕?无法找到关于这方面的很多信息,如果有可能的话,任何人都可以指出我正确的方向吗?谢谢如何判断用户是否在设备主屏幕上

回答

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"/> 
相关问题