Android 判断当前是否处于桌面

在Android N之后已经不再适用,新的方法抽个时间研究下

/**
* 判断当前界面是否是桌面
*/
public static booleanisHome(Context ctx) {  
  ActivityManager mActivityManager = (ActivityManager)ctx.getSystemService(Context.ACTIVITY_SERVICE);  
  List rti = mActivityManager.getRunningTasks(1);
  returngetHomes(ctx).contains(rti.get(0).topActivity.getPackageName());
}

/**
* 获得属于桌面的应用的应用包名称
*
* @return返回包含所有包名的字符串列表
*/
private staticListgetHomes(Context ctx) {
  List names =newArrayList();
  PackageManager packageManager = ctx.getPackageManager();
  Intent intent =newIntent(Intent.ACTION_MAIN);
  intent.addCategory(Intent.CATEGORY_HOME);
  List resolveInfo = packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);
  for(ResolveInfo ri : resolveInfo) {
  names.add(ri.activityInfo.packageName);
 }
  returnnames;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容