7 votos

¿Cómo agregar contactos usando adb sin la interacción del usuario?

Tras este He descubierto cómo añadir un contacto utilizando adb . Lo único que me molesta es que el usuario tiene que dar el visto bueno/cancelar la acción, porque aparece un diálogo de creación de contacto en la pantalla. Lo que quiero es que el comando añada automáticamente el contacto sin esperar la aprobación del usuario. Ya he revisado este pero no pude encontrar la manera. ¿Alguien sabe cómo hacerlo?

0 votos

¿Su versión de Android y su dispositivo? ¿Está rooteado?

0 votos

Tengo varios dispositivos disponibles: Nexus 5, 6.0, rooteado; Samsung Note 10.1 (GT-N8010), 4.4.2, rooteado; Nexus S, 4.1.2, rooteado; Sony Xperia Tipo ST21i, 4.0.4, rooteado. Aunque me interesa sobre todo añadir contactos en el Note, el Nexus S y el Sony

4voto

rascalking Puntos 1422

Para tu dispositivo Android 4.4.2 el comando para añadir un contacto es (sustituye el Bo Lawson y #123.. por lo que quieras):

adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Bo Lawson' -e phone 123456789

Ahora a conseguir que se guarde. Esto es específico de Android 4.4.2. Presionando atrás se guardará. Para esto necesitas usar eventos de teclas. Con Android 4.4.2 es el evento clave 4. Vas a necesitar hacerlo al menos dos veces. Una para salir del teclado, la otra para salir y guardar. Si es necesario, úsalo de nuevo para salir completamente de la aplicación Contactos.

adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Bo Lawson' -e phone 123456789
adb shell input keyevent 4
adb shell input keyevent 4

Esto funcionó en mi Samsung Galaxy Tab Pro rooteado con Android 4.4.2.

Edición: He encontrado un post en Stack Overflow que referencias este comando.

0 votos

¡Buena solución! Realmente funciona.

0 votos

De hecho, también funcionó para los otros dispositivos. Lástima que no haya encontrado el post que mencionas... ¿Sabes si hay algún tipo de lista de todas las entradas o keyevents?

0 votos

Para la versión actual de Android y si no hay cambios en las versiones anteriores. El sitio de desarrolladores de Google le dará mucha información. developer.Android.com/reference/Android/view/KeyEvent.html Para todo entonces la tediosa tarea de leer el código fuente. Desglose simplificado buscar SO, AE, blogs individuales y artículos. stackoverflow.com/questions/7789826/adb-shell-input-events

1voto

Creo que no hay una forma directa de hacerlo. Te recomendaría hacer una aplicación sencilla para insertar un contacto o lista de contactos y luego usarla con adb. Puedes encontrar un ejemplo aquí http://www.codeproject.com/Articles/578823/Android-Contact-Operations-Insert-Search-Delete

1 votos

Esto puede sonar poco elegante, pero puedes considerar omitir la pregunta de responder si crees que algo no se puede hacer, a menos que expliques técnicamente y en detalle la razón de ello. Dado que este sitio es para usuarios finales de Android (léase: no esperamos que los usuarios tengan conocimientos de programación de una aplicación) la recomendación que has hecho no les resultará útil :)

0 votos

Gracias por la sugerencia, pero no quería usar una aplicación para eso.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X