¿Cómo mostrar el cuadro de diálogo de solicitud de permisos de Servicios de ubicación de Google arriba / a través de la pantalla de bloqueo?

Estoy tratando de mostrar los servicios de ubicación de Google (activar el GPS, datos de red, etc.) Diálogo a través de la pantalla de bloqueo.

Estoy usando KeyguardManager para desactivar la pantalla de bloqueo. Esto funciona bien, ya que mi MainActivity puede desactivar la pantalla de bloqueo. Sin embargo, tan pronto como aparezca el cuadro de diálogo de servicios de ubicación de Google, la pantalla de bloqueo vuelve a activarse, la pantalla está bloqueada y no puedo acceder a MainActivity a menos que desbloquee la pantalla.

Incluso he intentado … Flag_Show_When_Locked, pero no ayudó.

Aquí está mi código:

private KeyguardLock DisableScreenLock; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); setContentView(R.main_layout); KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); DisableScreenLock = myKeyGuard.newKeyguardLock("disableKeyguard"); DisableScreenLock.disableKeyguard(); } protected synchronized void GoogleApiClient_Intialize() { Log.e(TAG, "Building GoogleApiClient"); googleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); } protected void LocationRequest_Intialize() { locationRequest = new LocationRequest(); locationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS); locationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); } protected void LocationSettingsRequest_Builder() { LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder(); builder.addLocationRequest(locationRequest); locationSettingsRequest = builder.build(); } @Override public void onConnected(Bundle connectionHint) { Log.e(TAG, "GoogleApiClient is connected"); LocationSettings_Check_Start(); } protected void LocationSettings_Check_Start() { PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings( googleApiClient, locationSettingsRequest); result.setResultCallback(this); } 

¿Hay de todos modos puedo mostrar este diálogo de servicios de ubicación de Google a través de contraseña / patrón / pin, etc. pantalla de bloqueo?

Muchas gracias por su ayuda.

Introduzca aquí la descripción de la imagen

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.