Sí, en realidad puedes hacer esto. Es un poco turbio cuando inspeccionas el portapapeles, pero funciona bien.
En primer lugar, puede inspeccionar el contenido actual del portapapeles service call clipboard 1
desde un shell adb (o, sin bombardear primero adb shell service call clipboard 1
). Puede comenzar inicialmente en blanco después de un reinicio, por ejemplo:
# service call clipboard 1
Result: Parcel(
0x00000000: 00000000 00000001 00000000 00000000 '................'
0x00000010: 00000000 00000000 '........ ')
#
Puede poner texto en el portapapeles utilizando service call clipboard 2
, que básicamente toma 3 parámetros: dos entradas y la cadena que desea poner en el portapapeles:
# service call clipboard 2 i32 1 i32 0 s16 "Hi there"
Result: Parcel(00000000 '....')
Para ser sincero, no estoy seguro de cuáles son los dos primeros parámetros. Una respuesta en Stack Overflow ha sugerido que el primer int es "número de elementos en la parcela" (uno en este caso) y que el segundo es la longitud de la cadena. Sin embargo, he usado 0 para el segundo parámetro y funciona bien, y no puedo encontrar ninguna documentación que coincida con esta función en particular ... así que tómalo por lo que vale.
En cualquier caso, básicamente se trata de crear un objeto Parcel con 3 campos y luego pasarlo al portapapeles. Luego, el portapapeles desempaqueta la parcela y establece el valor de cadena que se pasa como contenido del portapapeles. Puede ver esto cuando vaya a recuperar el valor después:
# service call clipboard 1
Result: Parcel(
0x00000000: 00000000 00000001 00000000 00000008 '................'
0x00000010: 00690048 00740020 00650068 00650072 'H.i. .t.h.e.r.e.'
0x00000020: 00000000 00000000 '........ ')
#
Del mismo modo, si presiona prolongadamente en un campo de entrada de texto y presiona "Pegar" después de hacer esto, obtendrá el texto que se configuró a través de la call service clipboard 2
línea anterior (y se verá completamente normal).
(Los ejemplos anteriores provienen de mi HTC EVO, que ejecuta CyanogenMod 7)