Por qué el flag isLockTaskPermitted es falso

Estoy tratando de pin pantalla de forma programática en Android L. Mi aplicación incluye archivo xml con

<?xml version="1.0" encoding="utf-8"?> <device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <force-lock/> <watch-login/> <disable-camera/> <disable-keyguard-features/> <encrypted-storage/> <expire-password/> <limit-password/> <reset-password/> <set-global-proxy/> <wipe-data/> </uses-policies> </device-admin> 

He instalado la aplicación con las líneas adecuadas en el archivo AndroidManifest donde se define AdminReceiver. Todo funcionó bien hace unas semanas, pero ahora mismo cuando volví a este proyecto – App me pide que confirme "Pin pantalla" popup cada vez que se inicia la aplicación.

Cuando estoy depurando me di cuenta de comportamiento extraño devicePolicyManager.isAdminActive(componentName) es true devicePolicyManager.isDeviceOwnerApp(getPackageName()) es cierto

pero

devicePolicyManager.isLockTaskPermitted(getPackageName()) es falso

No importa si configuro la aplicación como propietario de dispositivo usando adb comend dpm set-device-owner ... o empujando el archivo device_owner.xml a / data / system /

Mi pregunta es ¿por qué la aplicación no tiene permiso para bloquear la pantalla?

One Solution collect form web for “Por qué el flag isLockTaskPermitted es falso”

Para eso debe llamar a setLockTaskPackages ()

Usted código debe algo como a continuación.

Su actividad debe tener

 ComponentName mAdminComponentName = DeviceAdminReceiver.getComponentName(this); //where this will be your Activity DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); mDevicePolicyManager.setLockTaskPackages(mAdminComponentName,new String[]{getPackageName()}); 

DeviceAdminReceiver.java

 // Copyright 2016 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.codelabs.cosu; /** * Created by nyfuchs on 4/26/16. */ import android.content.ComponentName; import android.content.Context; /** * Handles events related to the managed profile. */ public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver { private static final String TAG = "DeviceAdminReceiver"; /** * @param context The context of the application. * @return The component name of this component in the given context. */ public static ComponentName getComponentName(Context context) { return new ComponentName(context.getApplicationContext(), DeviceAdminReceiver.class); } } 

AndroidManifest.xml

  <receiver android:name="com.google.codelabs.cosu.DeviceAdminReceiver" android:description="@string/app_name" android:label="@string/app_name" android:permission="android.permission.BIND_DEVICE_ADMIN"> <meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin_receiver" /> <intent-filter> <action android:name="android.intent.action.DEVICE_ADMIN_ENABLED"/> <action android:name="android.intent.action.PROFILE_PROVISIONING_COMPLETE"/> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> 
  • Post datos UTF-8 codificados en el servidor pierde ciertos caracteres
  • Nuevo patrón de diseño de la actividad de Android Studio content_main.xml
  • Android: ¿Cómo inyectar un elemento <string> en otro elemento <string> en XML?
  • Android: DOM vs SAX vs análisis XMLPullParser?
  • Problemas con el diseño de XML de Android
  • El soporte de diseño de derecha a izquierda está causando problemas de advertencia en el editor de xml
  • Jerarquía de estilo en Android - ¿cuál es el orden de importancia?
  • ¿Cómo agregar documentación a atributos personalizados?
  • Aplicar filtro de color con xml en ImageView
  • El servidor no pudo procesar su solicitud. El valor no puede ser nulo: análisis de jabón
  • Cifrar y descifrar xml
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.