Aplicación para Android con direcciones de voz GPS
Estoy intentando crear una aplicación de turismo para Android.
Necesito que el usuario se guíe por voz. He estado buscando en la googlemaps Android API
pero no hay nada acerca de las instrucciones de voz.
- Integre el reconocimiento de voz de Google en la aplicación para Android
- Tiempo de espera del reconocimiento de voz de Google
- Android Reconoce la voz de 2 personas de manera diferente
- Limitación del diccionario de reconocimiento de voz para una mejor coincidencia y buena precisión
- Android compara dos sonidos para la correspondencia fonética
¿Conoce alguna solución para esto? ¿Hay alguna otra API / SDK que pueda utilizar para implementar esto?
Gracias por adelantado.
- Cambiar voz durante la llamada telefónica de Android
- Android mediaRecorder.setAudioSource ha fallado
- Reconocimiento de voz continua Android - Sin lagunas
- ¿Cómo puede hacer que el reconocimiento de voz del soporte para el emulador android
- Silenciar el sonido de reconocimiento de voz de Google
- Cómo leer mensajes de voz por programación en Android
- Comparar dos voces en android
- ¿Cómo puedo utilizar el reconocimiento de voz sin el diálogo molesto en los teléfonos Android
Esa es una idea genial. Sin embargo, no sé si estás listo para reinventar la rueda para hacer eso. En caso de que lo estés, también tengo una solución, pero permítanme presentarles la manera en que resolvería este problema:
En Android, existe el sistema de intenciones que le permite llamar a aplicaciones internas para facilitar su trabajo. Entonces, ¿por qué no lanzar la aplicación Directions (Google Maps con una intención especial) ya que el usuario probablemente está familiarizado con la interfaz de usuario y probablemente le guste? Además, con esta solución, no es necesario tener cuidado de mantener sus cosas actualizadas, sólo tiene que preguntar al sistema y que va a proporcionar la solución de la caja. Y es mucho más fácil proceder de esta manera. 🙂
Para ello, usará un URI básico simple que el sistema reconocerá:
String address = "My Fake Address"; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + address)); startActivity(intent);
Después de eso, el usuario será capaz de elegir cómo quiere ir allí y su trabajo está hecho, el usuario está satisfecho, y le gustó el 99% de las otras aplicaciones (él tiene los mensajes vocales también).
Entonces, si está en sus requisitos para tenerlo dentro de su aplicación, podría ser posible (basado en la proposición de Aster), pero usted tendrá que mantener una pista del usuario usted mismo (para poder enviar la buena instrucción a la derecha hora). Pero primero echemos un vistazo a la API de direcciones de Google, si configuras correctamente tu aplicación deberías recibir este tipo de JSON (todo el documento allí ):
{ "status": "OK", "routes": [ { "summary": "I-40 W", "legs": [ { "steps": [ { "travel_mode": "DRIVING", "start_location": { "lat": 41.8507300, "lng": -87.6512600 }, "end_location": { "lat": 41.8525800, "lng": -87.6514100 }, "polyline": { "points": "a~l~Fjk~uOwHJy@P" }, "duration": { "value": 19, "text": "1 min" }, "html_instructions": "Head \u003cb\u003enorth\u003c/b\u003e on \u003cb\u003eS Morgan St\u003c/b\u003e toward \u003cb\u003eW Cermak Rd\u003c/b\u003e", "distance": { "value": 207, "text": "0.1 mi" } }, ... ... additional steps of this leg ... ... additional legs of this route "duration": { "value": 74384, "text": "20 hours 40 mins" }, "distance": { "value": 2137146, "text": "1,328 mi" }, "start_location": { "lat": 35.4675602, "lng": -97.5164276 }, "end_location": { "lat": 34.0522342, "lng": -118.2436849 }, "start_address": "Oklahoma City, OK, USA", "end_address": "Los Angeles, CA, USA" } ], "copyrights": "Map data ©2010 Google, Sanborn", "overview_polyline": { "points": "a~l~Fjk~uOnzh@vlbBtc~@tsE`vnApw{A`dw@~w\\|tNtqf@l{Yd_Fblh@rxo@b}@xxSfytAblk@xxaBeJxlcBb~t@zbh@jc|Bx}C`rv@rw|@rlhA~dVzeo@vrSnc}Axf]fjz@xfFbw~@dz{A~d{A|zOxbrBbdUvpo@`cFp~xBc`Hk@nurDznmFfwMbwz@bbl@lq~@loPpxq@bw_@v|{CbtY~jGqeMb{iF|n\\~mbDzeVh_Wr|Efc\\x`Ij{kE}mAb~uF{cNd}xBjp]fulBiwJpgg@|kHntyArpb@bijCk_Kv~eGyqTj_|@`uV`k|DcsNdwxAott@r}q@_gc@nu`CnvHx`k@dse@j|p@zpiAp|gEicy@`omFvaErfo@igQxnlApqGze~AsyRzrjAb__@ftyB}pIlo_BflmA~yQftNboWzoAlzp@mz`@|}_@fda@jakEitAn{fB_a]lexClshBtmqAdmY_hLxiZd~XtaBndgC" }, "warnings": [ ], "waypoint_order": [ 0, 1 ], "bounds": { "southwest": { "lat": 34.0523600, "lng": -118.2435600 }, "northeast": { "lat": 41.8781100, "lng": -87.6297900 } } } ] }
Así que lo que podría ser posible es tomar estos html_instructions
y leerlos al usuario con el Android TTS Lib cuando él está en un cuadrado alrededor del start_location
o la end_location
. Sin embargo, puede ser muy complicado manejar este cuadrado correctamente, por eso yo usaría la primera opción que es realmente respetar el espíritu de Android.
BTW, aquí están la definición de estos atributos:
Start_location contiene las coordenadas de latitud / longitud del origen de esta pierna. Debido a que el API de rutas calcula direcciones entre ubicaciones mediante el uso de la opción de transporte más cercana (por lo general una carretera) en los puntos de inicio y fin, start_location puede ser diferente que el origen previsto de este pierna si, por ejemplo, un camino no está cerca del origen.
End_location contiene las coordenadas de latitud / longitud del destino dado de esta etapa. Debido a que el API de rutas calcula direcciones entre ubicaciones mediante el uso de la opción de transporte más cercana (por lo general una carretera) en los puntos de inicio y fin, END_LOCATION puede ser diferente que el destino previsto de este pierna si, por ejemplo, un camino no está cerca del destino.
- ¿Cómo encontrar qué aplicaciones están permitidas en "Notificaciones de aplicaciones prioritarias" dentro de la configuración No molestar?
- Android, Solicitud de ubicación, establecer la duración de caducidad no funciona