什么功能或代码需要Android中的GET_TASKS权限?

时间:2014-08-06 02:40:10

标签: android permissions

我认为GET_TASKS权限是我AndroidManifest.xml中的孤行。我想安全地删除它。您是否知道需要此权限的任何功能或代码?谢谢。

<uses-permission android:name="android.permission.GET_TASKS" />

2 个答案:

答案 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();
}
}