Android Nougat PhoneStateListener no se activa

En Android (objetivo 25) tengo un servicio en segundo plano y en la función onCreate he inicializado un escucha de estado del teléfono. Funciona bien en las versiones de Android anteriores a Nougat, pero en Nougat no funciona, a pesar de que se otorgan los permisos.

public class Service extends IntentService
{
    class PhoneListener extends PhoneStateListener
    {
       String TAG = getClass().getName();
       @Override
       public void onCallStateChanged(int state, String incomingNumber) 
       {
           super.onCallStateChanged(state, incomingNumber);
           switch (state)
           {
               case TelephonyManager.CALL_STATE_IDLE:
                Log.d(TAG,"IDLE" );
               break;
               case TelephonyManager.CALL_STATE_OFFHOOK:
                Log.d(TAG,"OFFHOOK");
               break;
               case TelephonyManager.CALL_STATE_RINGING:
                Log.d(TAG,"RINGING");
               break;
           }
       }
   }

   public Service ()
   {
       super("ChatService");
   }
   public Service(String name)
   {
       super(name);
   }

   @Override
   public void onCreate()
   {
       super.onCreate();
       TelephonyManager tm = (TelephonyManager)getApplicationContext().getSystemService(TELEPHONY_SERVICE);
       PhoneListener listener = new PhoneListener();
       tm.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
   }
}

No sé cuál es el problema, parece que el administrador de telefonía no está registrado y, por lo tanto, onCallStateChanged no se activa. Una de mis conjeturas es la función Doze que se introdujo en Android M, pero aún así ... este código funciona bien en Android 6 incluso cuando el teléfono no se encuentra "en funcionamiento"

Respuestas a la pregunta(2)

Su respuesta a la pregunta