Android 判断当前的界面是否是桌面的方法

来源:互联网 发布:慈溪行知职高家在逍林 编辑:程序博客网 时间:2024/04/28 05:01

判断当前界面是否是桌面:

public boolean isHome() {        String packname = "";        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            List<UsageStats> queryUsageStats = getUsageStats();            if (queryUsageStats != null && !queryUsageStats.isEmpty()) {                UsageStats recentStats = null;                for (UsageStats usageStats : queryUsageStats) {                    if (recentStats == null                            || recentStats.getLastTimeUsed() < usageStats.getLastTimeUsed()) {                        recentStats = usageStats;                    }                }                packname = recentStats.getPackageName();            }        } else {            List<RunningTaskInfo> rti = mAManager.getRunningTasks(1);            packname = rti.get(0).topActivity.getPackageName();        }        return getHomes().contains(packname);    }


获得属于桌面的应用的应用包名称:

private List<String> getHomes() {        List<String> names = new ArrayList<String>();        PackageManager packageManager = BaseApp.APP.getPackageManager();        // 属性        Intent intent = new Intent(Intent.ACTION_MAIN);        intent.addCategory(Intent.CATEGORY_HOME);        List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,                PackageManager.MATCH_DEFAULT_ONLY);        for (ResolveInfo ri : resolveInfo) {            names.add(ri.activityInfo.packageName);        }        return names;    }


0 0
原创粉丝点击