Какие функции или коды требуют разрешения GET_TASKS в Android?

Я думаю, что разрешение GET_TASKS является сиротской линией в моем AndroidManifest.xml. Я хочу удалить его безопасно. Знаете ли вы какую-либо функцию или код, требующий этого разрешения? Спасибо.

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

Ответы

Ответ 1

С андроидной ссылки

Позволяет приложению получать информацию о текущем или недавно запущенные задачи.

Примером является public List<ActivityManager.RecentTaskInfo> getRecentTasks (int maxNum, int flags), поскольку он вызывает исключение SecurityException, если вызывающая сторона не имеет разрешения GET_TASKS.


Обратите внимание, что согласно документации

Эта константа устарела на уровне API 21. Больше не применяется.

и

Начиная с LOLLIPOP, этот метод больше не доступен третьим лицам приложения: введение документно-ориентированных рецензий означает, что это может утечь личную информацию для абонента. Для назад совместимость, он все равно будет возвращать небольшое подмножество своих данных: в хотя бы собственные задачи вызывающего (хотя см. getAppTasks() для правильного поддерживаемый способ получения этой информации) и, возможно, некоторые другие такие задачи, как дома, которые, как известно, не чувствительны.

Ответ 2

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