react - android.permission.REMOVE_TASKS: Permiso denegado
permissions android react native (1)
Quiero eliminar la lista de tareas recientes. A través de google he encontrado algunos enlaces de stackoverflow. Pero ninguno de ellos ha sido respondido correctamente. Solo un enlace
Android, ¿cómo borrar la lista de tareas recientes que podría obtener desde el botón Inicio en la mayoría de los teléfonos? La reflexión es una forma posible?
ha mostrado una forma de usar la reflexión. Pero ahora, estoy enfrentando un problema, se deniega android.permission.REMOVE_TASKS. Se proporciona el siguiente código, donde se puede ver que en la cláusula try-catch, como se deniega el permiso, el código se mueve a la cláusula catch ().
enter code here
gestor de actividad privado mActivityManager = null; Método privado mRemoveTask;
public MyActivityManager(Context context) {
try {
Class<?> activityManagerClass = Class.forName("android.app.ActivityManager");
mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
mRemoveTask = activityManagerClass.getMethod("removeTask", new Class[] { int.class, int.class });
mRemoveTask.setAccessible(true);
}
catch ( ClassNotFoundException e ) {
Log.i("MyActivityManager", "No Such Class Found Exception", e);
}
catch ( Exception e ) {
Log.i("MyActivityManager", "General Exception occurred", e);
}
}
/**
* If set, the process of the root activity of the task will be killed
* as part of removing the task.
*/
public static final int REMOVE_TASK_KILL_PROCESS = 0x0001;
/**
* Completely remove the given task.
*
* @param taskId Identifier of the task to be removed.
* @param flags Additional operational flags. May be 0 or
* {@link #REMOVE_TASK_KILL_PROCESS}.
* @return Returns true if the given task was found and removed.
*/
public boolean removeTask(int taskId, int flags) {
try {
return (Boolean) mRemoveTask.invoke(mActivityManager, Integer.valueOf(taskId), Integer.valueOf(flags) );
} catch (Exception ex) {
Log.i("MyActivityManager", "Task removal failed", ex);
}
return false;
}
public void clearRecentTasks() {
List<RecentTaskInfo> recents = mActivityManager.getRecentTasks(1000, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
// Start from 1, since we don''t want to kill ourselves!
for( int i=1; i < recents.size(); i++ ) {
removeTask( recents.get(i).persistentId, 0);
}
}
} `
Aquí hay que señalar que, he utilizado estos tres permisos android.permission.GET_TASKS, android.permission.REORDER_TASKS, android.permission.REMOVE_TASKS algunas fuentes diciendo que se eliminen los procesos en segundo plano, pero eso no eliminará la lista de aplicaciones recientes. Entonces necesito algunas sugerencias.
android.permission.REMOVE_TASKS es denegada
Ese permiso es un permiso de nivel de signature
. Solo podrá usarlo si su aplicación está firmada con la misma clave de firma que el firmware del dispositivo.