Tak, możesz to zrobić. Podczas przeglądania schowka wygląda to trochę nieprzyzwoicie, ale działa dobrze.
Po pierwsze, możesz sprawdzić bieżącą zawartość schowka za service call clipboard 1pomocą powłoki adb (lub, bez uprzedniej powłoki adb shell service call clipboard 1). Może początkowo być pusty po ponownym uruchomieniu, na przykład:
# service call clipboard 1
Result: Parcel(
0x00000000: 00000000 00000001 00000000 00000000 '................'
0x00000010: 00000000 00000000 '........ ')
#
Możesz wstawić tekst do schowka service call clipboard 2, który w zasadzie zajmuje 3 parametry - dwie liczby całkowite i ciąg znaków, który chcesz umieścić w schowku:
# service call clipboard 2 i32 1 i32 0 s16 "Hi there"
Result: Parcel(00000000 '....')
Szczerze mówiąc, nie jestem pewien, jakie są pierwsze dwa parametry. Jedna odpowiedź na temat przepełnienia stosu sugeruje, że pierwszą liczbą całkowitą jest „liczba elementów w paczce” (jedna w tym przypadku), a drugą jest długość łańcucha. Jednak użyłem 0 dla drugiego parametru i działa dobrze i nie mogę znaleźć żadnej dokumentacji, która pasowałaby do tej konkretnej funkcji ... więc weź to za to, co jest warte.
W każdym razie zasadniczo tworzy obiekt Parcel z 3 polami, a następnie przekazuje go do schowka. Schowek następnie rozpakowuje działkę i ustawia wartość ciągu przekazywaną jako zawartość schowka. Możesz to zobaczyć, gdy później pobierzesz wartość:
# 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 '........ ')
#
Podobnie, jeśli naciśniesz długo pole wprowadzania tekstu i klikniesz „Wklej” po wykonaniu tej czynności, otrzymasz tekst ustawiony za pomocą call service clipboard 2powyższej linii (i będzie wyglądał zupełnie normalnie).
(Powyższe przykłady pochodzą z mojego HTC EVO z systemem CyanogenMod 7)