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 1
pomocą 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 2
powyższej linii (i będzie wyglądał zupełnie normalnie).
(Powyższe przykłady pochodzą z mojego HTC EVO z systemem CyanogenMod 7)