Ja, das können Sie tatsächlich. Es sieht etwas klobig aus, wenn Sie die Zwischenablage untersuchen, aber es funktioniert einwandfrei.
Zuallererst können Sie den aktuellen Inhalt der Zwischenablage mit service call clipboard 1
einer AdB-Shell (oder, ohne vorher zu schälen adb shell service call clipboard 1
) überprüfen . Es kann nach einem Neustart zunächst leer sein, zum Beispiel:
# service call clipboard 1
Result: Parcel(
0x00000000: 00000000 00000001 00000000 00000000 '................'
0x00000010: 00000000 00000000 '........ ')
#
Sie können Text in die Zwischenablage service call clipboard 2
einfügen, indem Sie 3 Parameter verwenden - zwei Zoll und die Zeichenfolge, die Sie in die Zwischenablage einfügen möchten:
# service call clipboard 2 i32 1 i32 0 s16 "Hi there"
Result: Parcel(00000000 '....')
Um ehrlich zu sein, bin ich mir nicht sicher, was die ersten beiden Parameter sind. Eine Antwort auf Stack Overflow hat ergeben, dass das erste int "Anzahl der Elemente im Paket" ist (eines in diesem Fall) und dass das zweite die Länge der Zeichenfolge ist. Ich habe jedoch 0 für den zweiten Parameter verwendet, und es funktioniert einwandfrei, und ich kann keine Dokumentation finden, die mit dieser bestimmten Funktion übereinstimmt. Nehmen Sie diese also für das, was sie wert ist.
In jedem Fall wird ein Parcel-Objekt mit drei Feldern erstellt und anschließend in die Zwischenablage übertragen. Die Zwischenablage entpackt dann das Paket und legt den als Inhalt der Zwischenablage übergebenen Zeichenfolgenwert fest. Sie können dies sehen, wenn Sie anschließend den Wert abrufen:
# 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 '........ ')
#
Wenn Sie lange auf ein Texteingabefeld drücken und anschließend auf "Einfügen" klicken, erhalten Sie den Text, der über die call service clipboard 2
obige Zeile eingegeben wurde (und er sieht ganz normal aus).
(Die obigen Beispiele stammen von meinem HTC EVO mit CyanogenMod 7)