2010-08-10 11 views

Respuesta

14

Lamentablemente no se puede hacer eso.

La única solución que encontré (hackear) es abrir primero un Activity con un estilo de diálogo y luego hacer la llamada allí.

+0

Ok entonces traté de utilizar receptores de radiodifusión. sin embargo, solo puedo detectar los intentos cuando el estado cambió, pero si el bluetooth está deshabilitado y quiero deshabilitarlo, entonces el estado no cambia y nunca me notifican ... – RoflcoptrException

+0

Lo siento, no entiendo que estas diciendo. ¿Puedes volver a explicar? – Macarse

+0

Como no puedo usar startActivityForResult() intenté usar BroadcastReceivers para detectar los eventos si el estado de bluetooth cambiaba. Lamentablemente, el estado de bluetooth solo cambia si, por ejemplo, bluetooth no está habilitado y el usuario hace clic en sí para habilitarlo. Entonces mi broadcastReceiver se informa. Pero si bluetooth no está habilitado y el usuario hace clic en no, el estado del bluetooth no cambia y, por lo tanto, no se notifica a mi broadcastReceiver. – RoflcoptrException

11

Sé que esta es una pregunta anterior, pero me encontré con un desafío similar, y mi solución fue crear una actividad con android: theme = "@ android: style/Theme.NoDisplay", y luego llamar a startActivityForResult() a partir de ese. Eso crea una actividad invisible que puede tanto solicitar como recibir los intentos, antes de escribir datos en algún lugar y luego terminarlos.

+2

Tenga mucho cuidado con "@android: style/Theme.NoDisplay" ... Encontré que se agregó un retraso de 5 segundos entre llamar a startActivityForResult() y aparecer el cuadro de diálogo. Cambiar a "@android: style/Theme.Translucent.NoTitleBar.Fullscreen" hizo que la demora desapareciera. De lo contrario, esto es lo que funcionó para mí. – TrevorWiley

0

Creo que la solución es comenzar la actividad de su servicio, entonces tener la actividad se unen al servicio y registrar una devolución de llamada

Cuestiones relacionadas