Foros del Web » Programando para Internet » Android »

Aplicación voz. Acceso con autenticación básica

Estas en el tema de Aplicación voz. Acceso con autenticación básica en el foro de Android en Foros del Web. Hola a todos, he desarrollado una aplicación en Android para domótica que me permite actuar por medio de la voz sobre los diferentes módulos que ...
  #1 (permalink)  
Antiguo 04/02/2014, 12:55
 
Fecha de Ingreso: febrero-2014
Ubicación: Valencia
Mensajes: 1
Antigüedad: 8 años, 4 meses
Puntos: 0
Aplicación voz. Acceso con autenticación básica

Hola a todos,
he desarrollado una aplicación en Android para domótica que me permite actuar por medio de la voz sobre los diferentes módulos que tengo conectados. Me permite apagar o encender luces, subir o bajar intensidades lumínicas etc por medio de la voz y funciona correctamente. El problema que se me presenta es que cuando mando la instrucción al servidor web tarda unos segundos en aceptarme la conexión puesto que lleva autenticación básica. Tras unos segundos me deja entrar y procesa bien la instrucción pero, como en ocasiones debo mandar varias instrucciones para ver el estado en que se encuentra un módulo y en función del estado actuar sobre él, en ocasiones debo mandar tres o cuatro instrucciones seguidas y cada vez la autenticación suma segundos con lo que a lo mejor le digo a una luz que aumente su intensidad un 25% y mientras borra el buffer (1 instrucción), consulta el estado del módulo(2ª instrucción) y actúo sobre el módulo (3ª) instrucción, tarda unos 15 s en responder y esto no es admisible.

La forma que tengo de acceder al servicio web es mediante el siguiente código que repito para cada instrucción, es decir, mando la sentencia como un parámetro.


public static String lanzaInstruccion(String sentencia) throws IOException {

String devuelveHub = "";
String userpass = Lavoz.usuario + ":" + Lavoz.contrasena;
String basicAuth = "Basic "
+ org.example.lavoz.Base64.encodeBytes(userpass.getB ytes());
URL url = new URL(sentencia);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
uc.setRequestProperty("Authorization", basicAuth);
if (uc.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader leido = new BufferedReader(new InputStreamReader(
uc.getInputStream()));
String linea;
while ((linea = leido.readLine()) != null)
devuelveHub = devuelveHub + linea;
leido.close();
} else {
return null;
}
return devuelveHub;
}



Como véis, cada vez que mando una sentencia, se autentica.
No sé como podría lanzar las tres instrucciones con una sóla autenticación.
Lo que quisiera es que la conexión se mantuviera abierta mientras el programa esté activo y se cree al ser lanzado en una actividad inicial.

Os agradezco a todos vuestra atención. Un cordial saludo

Etiquetas: autenticación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.