/**
* 返回当前的应用是否处于前台显示状态
*
* @param packageName
* @return
*/
public boolean isTopActivity(String packageName) {
String result = execRootCmd("dumpsys activity | grep \"mResumedActivity\"");
int start = result.indexOf("u0") + 3;
int end = result.indexOf("/");
Log.d(TAG, "s: " + start + "end: " + end);
if (start < 0 || end < 0 || end <= start)
return false;
String top = result.substring(start, end);
Log.e(TAG, "top activity:" + top);
if (top.contentEquals(packageName))
return true;
return false;
}
execRootCmd我这里是默认执行了su,而dumpsys是不需要使用到su的,所以没有root权限的童鞋,直接用Runtime.getRuntime().exec(cmd)
exeRootCmd可以见Android 执行su命令