我认为GET_TASKS权限是我AndroidManifest.xml中的孤行。我想安全地删除它。您是否知道需要此权限的任何功能或代码?谢谢。
<uses-permission android:name="android.permission.GET_TASKS" />
答案 0 :(得分:16)
来自android reference
允许应用程序获取有关当前或的信息 最近运行的任务。
示例是public List<ActivityManager.RecentTaskInfo> getRecentTasks (int maxNum, int flags)
,因为如果调用者没有GET_TASKS权限,它会抛出SecurityException。
请注意,根据documentation
此常量在API级别21中已弃用。不再强制执行。
和
自LOLLIPOP起,此方法不再适用于第三方 应用程序:引入以文档为中心的最近意味着它 可以将个人信息泄露给来电者。为了倒退 兼容性,它仍将返回其数据的一小部分:at 至少是调用者自己的任务(尽管请参阅getAppTasks()以获取正确的任务) 支持的方式来检索该信息),可能还有其他一些 已知不敏感的家庭等任务。
答案 1 :(得分:-1)
class CheckRunningActivity extends Thread{
ActivityManager am = null;
Context context = null;
public CheckRunningActivity(Context con){
context = con;
am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
}
public void run(){
Looper.prepare();
while(true){
// Return a list of the tasks that are currently running,
// with the most recent being first and older ones after in order.
// Taken 1 inside getRunningTasks method means want to take only
// top activity from stack and forgot the olders.
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
String currentRunningActivityName = taskInfo.get(0).topActivity.getClassName();
if (currentRunningActivityName.equals("PACKAGE_NAME.ACTIVITY_NAME")) {
// show your activity here on top of PACKAGE_NAME.ACTIVITY_NAME
}
}
Looper.loop();
}
}