Какие функции или коды требуют разрешения 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();
}
}