มีวิธีง่าย ๆ ในการคัดลอก / วางเนื้อหาคลิปบอร์ด (ของเดสก์ท็อป) ไปยังEditView
Android Emulator หรือไม่?
(เพื่อประโยชน์ในการพัฒนา / ทดสอบเท่านั้น)
มีวิธีง่าย ๆ ในการคัดลอก / วางเนื้อหาคลิปบอร์ด (ของเดสก์ท็อป) ไปยังEditView
Android Emulator หรือไม่?
(เพื่อประโยชน์ในการพัฒนา / ทดสอบเท่านั้น)
คำตอบ:
ด้วย v25.3.x ของ Android Emulator และอิมเมจระบบ x86 Google API Emulator API ระดับ 19 (Android 4.4 - Kitkat) และสูงกว่าคุณสามารถคัดลอกและวางจากเดสก์ท็อปของคุณด้วยเมาส์หรือแป้นพิมพ์
ฟีเจอร์นี้มีการประกาศพร้อมกับAndroid Studio 2.3
~/.android/avd/
.ini
ไฟล์?
ในเทอร์มินัลพิมพ์ adb shell input text 'my string here. With some characters escaped like \$ that'
โปรดทราบว่าวิธีการอื่นในการรวมช่องว่างในข้อความคือการแทนที่อักขระ%s
แต่ละspace
ตัว
adb shell input text "
pbpaste"
'ლ\(ಠ益ಠლ\)'
มันแค่บอกว่า 'Killed' หรือดูเหมือนว่าจะประสบความสำเร็จและไม่มีการพิมพ์อะไรเลยและฉันไม่มีสิ่งใดที่วางได้ในอีมูเลเตอร์ วิธี SMS (ฉันลองจาก DDMS) ดูเหมือนจะไม่ทำงานที่นี่มันแสดงเป็น "? (????)" :(
adb shell input text "This%sis%stext\nDoes%snot%work%here."
พิมพ์ "นี่คือข้อความ \ n ไม่สามารถใช้งานได้ที่นี่"
ฉันมักจะส่งข้อความที่ฉันต้องการคัดลอกเป็นข้อความ SMS ผ่าน telnet แล้วคัดลอกข้อความจากข้อความ sms นี่คือวิธี:
เชื่อมต่อผ่าน telnet:
telnet localhost <port>
telnet localhost 5554
(5554 เป็นพอร์ตเริ่มต้นแถบชื่อเรื่องของอีมูเลเตอร์แสดงพอร์ตที่ใช้งานอยู่เพื่อให้คุณสามารถดูว่ามันแตกต่างกันหรือไม่)
ส่งข้อความ:
sms send <senders phone number> <message>
sms send 1231231234 This is the message you want to send
(คุณสามารถสร้างหมายเลขโทรศัพท์ของผู้ส่งได้)
วิธีนี้ใช้ได้ดีสำหรับลิงก์เนื่องจากข้อความจะถูกแปลงเป็นไฮเปอร์ลิงก์โดยอัตโนมัติซึ่งคุณสามารถคลิกได้โดยไม่ต้องคัดลอก / วางลงในเบราว์เซอร์
เมื่ออีมูเลเตอร์ได้รับข้อความคุณสามารถคัดลอกและวางได้ทุกที่ที่คุณต้องการ
adb
ใช้ ดูคำตอบของฉัน
เพียงแค่คัดลอกจากที่ใดก็ได้คลิกและกดที่ข้อความแก้ไขของโทรศัพท์จำลองที่คุณต้องการให้ข้อความไป (เช่นคุณกดค้างเพื่อวางบนโทรศัพท์จริง) ตัวเลือก PASTE จะปรากฏขึ้นแล้ว PASTE
ไม่แน่ใจว่ามีประโยชน์หรือไม่ แต่ถ้าคุณต้องการ URL ที่ยาวจากเบราว์เซอร์เดสก์ท็อปที่จะเปิดในเบราว์เซอร์มือถือคุณสามารถส่ง SMS ด้วย URL นั้นและเปิดโดยตรงจากแอปข้อความ
หากคุณใช้ Android Studio บน Mac คุณอาจต้องระบุเส้นทางแบบเต็มไปยังadb
ไฟล์ที่เรียกใช้งานได้ ในการค้นหาเส้นทางนี้ให้เปิด:
Android Studio > Tools > Android > SDK Manager
คัดลอกพา ธ ไปยังตำแหน่ง SDK adb
ปฏิบัติการจะเป็นภายในplatform-tools
ไดเรกทอรี สำหรับฉันนี่คือเส้นทาง:
~/Library/Android/sdk/platform-tools/adb
ตอนนี้คุณสามารถเรียกใช้คำสั่งนี้:
~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
ฉันเบื่อกับปัญหานี้ดังนั้นฉันจึงตั้งชื่อแทนนี้ให้รองรับ:
alias ap="pbpaste | xargs adb shell input text"
จากนั้นเมื่อคุณเปิดหน้าต่างเทอร์มินัลใหม่การพิมพ์ "ap" จะวางสิ่งที่อยู่บนคลิปบอร์ดของคุณลงในฟิลด์ข้อความที่เลือกไว้ของอีมูเลเตอร์
เพียงเพิ่มสิ่งนี้ลงในโปรไฟล์ของคุณ (สำหรับผู้ใช้ส่วนใหญ่ที่เป็น~/.bash_profile
ผู้ใช้ zsh ~/.zshrc
) เพื่อให้นามแฝงสามารถใช้ได้ทุกที่ หรือหากคุณเป็นผู้ใช้ทุบตี (ค่าเริ่มต้นสำหรับ MacOS) คุณสามารถเรียกใช้คำสั่งต่อไปนี้ในเครื่องเทอร์มินัลเพื่อตั้งค่าให้คุณ:
echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
alias ap="adb shell input text `pbpaste`"
'alias' is not recognized as an internal or external command, operable program or batch file.
ว่าจะทำอย่างไร
สำหรับระดับ API> = 24 เท่านั้น
คัดลอกข้อความใด ๆ จากเครื่องท้องถิ่นของคุณแล้วเพียงเรียกใช้คำสั่งนี้
adb shell input keyevent 279
ตรวจสอบให้แน่ใจในการตั้งค่า Emulator Android Enable Clipboard Sharing
ตัวเลือกที่เปิดใช้งาน
อาจจะยุ่งยากเล็กน้อย แต่คุณสามารถส่ง SMS ไปที่ตัวจำลองได้โดยใช้ตัวควบคุมตัวจำลอง จากนั้นคุณไม่จำเป็นต้องพิมพ์ข้อความทั้งหมดอีกต่อไปถ้ามันยาวขึ้นและสามารถคัดลอก - วางในอีมูเลเตอร์ได้
อีกวิธีหนึ่ง: เชื่อมต่อกับอีมูเลเตอร์ผ่าน "telnet localhost PORT" จากนั้นใช้เหตุการณ์ฮาร์ดแวร์ที่ส่งเพื่อส่งเหตุการณ์การป้อนข้อความไปยังอีมูเลเตอร์ (ต้องเป็น UTF-8) ดูนี่สิ
คุณสามารถทำได้โดยไม่ต้องแก้ไขปัญหาด้วย เพียงแค่คลิกค้างไว้สักครู่ในฟิลด์อินพุตจนกระทั่งการแจ้งเตือนการวางปรากฏขึ้นจากนั้นคลิกที่วาง แค่นั้นแหละ!
บน Linux จะทำการวางข้อความโดยตรงจากคลิปบอร์ด
adb shell input text "'$(xclip -selection c -o)'"
นอกจากนี้ยังมีประโยชน์อย่างมากในการสร้างแป้นพิมพ์ลัดทั่วโลกด้วยคำสั่งนี้ตัวอย่างเช่น Ctrl+Shift+Super+V
สร้างแอปพลิเคชั่น Windows นี้ที่ช่วยให้ผู้ใช้คัดลอกแปะไปยังเครื่องเลียนแบบ Android หรืออุปกรณ์ที่เชื่อมต่อจากอินเตอร์เฟซภาพ https://github.com/Florin-Birgu/Android-Copy-Paste
คุณดูที่ C2DM หรือยัง chrome2phone และ fox2phone สามารถส่งลิงก์และข้อความคลิปบอร์ดและคัดลอกไปยังโทรศัพท์โดยอัตโนมัติ ลองใช้ adb shell ด้วย มีคำสั่งบริการ (/ system / bin / บริการ) ซึ่งสามารถใช้บริการ (คลิปบอร์ดบริการโทร ... ) รหัสธุรกรรมคือ 1, 2 และ 3 สำหรับ getClipboardText, setClipboardText และ hasClipboardText ตามลำดับ
ใช้ Visual Studio Emulator นี่คือวิธีการของฉัน
First Mound การ์ด SD เสมือน:
ตั้งค่าไฟล์ข้อความเพื่อถ่ายโอนข้อความ:
เมื่อใดก็ตามที่ฉันต้องการส่งข้อความไปยังคลิปบอร์ด
เมื่อตั้งค่าแล้วมันก็ค่อนข้างง่ายที่จะทำซ้ำ วิธีการเดียวกันนี้จะใช้กับอีมูเลเตอร์อื่น ๆ โดยคุณอาจต้องใช้วิธีการอื่นในการผลักไฟล์ข้อความของคุณไปที่อีมูเลเตอร์
(แปลงการอภิปรายความคิดเห็นเพื่อตอบ)
วิธีแก้ปัญหาเฉพาะบน windows: https://github.com/gcb/AdbPaste
เขียนในสองสามชั่วโมงเพื่อแก้ไขปัญหานี้ ตอนนี้ฉันกลับไปใช้ linux 100% ดังนั้นอย่าลังเลที่จะเข้าร่วมเป็นผู้สนับสนุนหรือผู้ดูแล!
คำสั่งเขียน: อุปกรณ์ adb (มันจะแสดงรายการอุปกรณ์ที่เชื่อมต่อในปัจจุบัน) เลือกกล่องข้อความที่คุณต้องการเขียนข้อความ เขียนคำสั่ง: ข้อความอินพุตเชลล์ adb "Yourtext" (ตรวจสอบให้แน่ใจว่ามีเพียงหนึ่งอุปกรณ์ที่เชื่อมต่อเพื่อรันคำสั่งนี้) เสร็จสิ้น
ฉันมาที่นี่เพื่อค้นหาวิธีแก้ไขปัญหาเดียวกันและลงเอยด้วยการเขียนแอปพลิเคชัน Android เพื่อแก้ไขปัญหานี้ คุณสามารถดาวน์โหลดได้ที่http://www.box.net/shared/6203bn441bfltkimajmk เพียงแค่ให้ URL ผ่านเมนูการตั้งค่าเพื่อชี้ไปยังสถานที่ที่คุณสามารถเปลี่ยนการตอบสนองของเว็บได้อย่างง่ายดาย บรรทัดแรกของการตอบกลับทางเว็บจะถูกคัดลอกไปยังคลิปบอร์ดของอีมูเลเตอร์สำหรับคุณ รายละเอียดเพิ่มเติมสามารถพบได้ที่http://agilesc.barryku.com/?p=255
สำหรับ Mac และ Linux ลองใช้ฟังก์ชั่นนี้ในไฟล์ aliases_bash ของคุณ (อยู่ใน / etc / aliases_bash สำหรับผู้ใช้ Mac ต้องแน่ใจว่าใช้sudo vim / etc / aliases_bash)
function adbtx {
userinput="$(sed 's/ /%s/g' <<< $1)"
adb shell input text "${userinput}";
}
export -f adbtx
จากนั้นในบรรทัดคำสั่งให้ป้อน:
adbtx 'Your text to emulator input'
' ข้อความของคุณที่จะจำลองการป้อนข้อมูล ' จะถูกป้อนเข้าในช่องข้อความจำลอง
รุ่งโรจน์ถึงเอเลียตสำหรับสายการแทนของเขาสำหรับ sed