Android एमुलेटर पर टेक्स्ट पेस्ट करें


316

क्या EditViewएंड्रॉइड एमुलेटर पर (डेस्कटॉप की) क्लिपबोर्ड सामग्री को कॉपी / पेस्ट करने का एक आसान तरीका है ?

(सिर्फ विकास / परीक्षण में आसानी के लिए)


2
पुनः जोएल बेकहम-एसएमएस भेजें: > मैं आमतौर पर वह टेक्स्ट भेजता हूं जिसे मैं एक एसएमएस संदेश के रूप में कॉपी करना चाहता हूं> टेलनेट के माध्यम से और फिर एसएमएस संदेश से पाठ की प्रतिलिपि बनाएँ। टेलनेट का उपयोग करने के बजाय आप एमुलेटर में आने वाली एसएमएस का अनुकरण करने के लिए ग्रहण का उपयोग कर सकते हैं: ग्रहण एंड्रॉइड टूल (संस्करण 17 में पुराने संस्करणों में भी) डीडीएमएस-पर्सपेक्टिव खोलें। "एमुलेटर कंट्रोल" / "टेलीफोनी क्रिया" के तहत आप एक आने वाली एसएमएस का अनुकरण कर सकते हैं> एक ​​बार जब एमुलेटर संदेश प्राप्त करता है तो आप इसे कॉपी कर सकते हैं और जहां भी चाहें इसे पेस्ट कर सकते हैं।
k3b

2
इस प्रश्न को देखने वाले किसी के लिए भी; यह अब एंड्रॉइड में मूल रूप से समर्थित है - बस सुनिश्चित करें कि आप नवीनतम एंड्रॉइड स्टूडियो / एमुलेटर का उपयोग कर रहे हैं जैसा कि यहां बताया गया है: stackoverflow.com/a/42678005/207552
bschandramohan

2
पाठ क्षेत्र पर लंबी प्रेस, और पेस्ट का चयन करें
onmyway133

जवाबों:


126

Android Emulator & x86 Google API एमुलेटर सिस्टम की छवियों v25.3.x के साथ API स्तर 19 (Android 4.4 - किटकैट) और उच्चतर, आप बस अपने माउस या कीबोर्ड से अपने डेस्कटॉप से ​​कॉपी और पेस्ट कर सकते हैं।

इस फीचर की घोषणा एंड्रॉइड स्टूडियो 2.3 के साथ की गई थी

एंड्रॉइड एमुलेटर के साथ कॉपी और पेस्ट करें


27
जनवरी 2018 तक वर्तमान एमुलेटर संस्करण में एक ज्ञात बग है जहां यह कभी-कभी काम करना बंद कर देता है। वर्कअराउंड के रूप में, "..." आइकन पर क्लिक करें, सेटिंग्स पर जाएं, और "क्लिपबोर्ड साझाकरण सक्षम करें" को बंद और चालू करें। ( स्रोत )
१ith

@mhsmith आप ऐसा कैसे करते हैं (एंड्रॉइड कमांड लाइन टूल के साथ कमांड लाइन से या क्लिप फ़ाइलों को साझा करके रीसेट करें) ~/.android/avd/ .ini?
क्लो

@ च्लोए चूंकि यह समस्या पहले से चल रहे एमुलेटर से संबंधित है, मुझे संदेह है कि उन चीजों में से कोई एक फर्क पड़ेगा।
मुहस्तिथ

1
कैसे आप एक मैक पर पेस्ट करते हैं? Cmd दबाने से मल्टी-टच आता है। Cmd-V कुछ नहीं करता है।
जूलम

17
@jcollum बाईं ओर क्लिक करें और उस टेक्स्ट फ़ील्ड पर पकड़ें जिसे आप पेस्ट करना चाहते हैं, 'पेस्ट' पर क्लिक करें। cmd + v काम नहीं करेगा, न ही ctrl + v, मैं कल्पना करता हूं।
लियाम डॉसन

306

एक टर्मिनल में, टाइप करें adb shell input text 'my string here. With some characters escaped like \$ that'

ध्यान दें कि पाठ में रिक्त स्थान शामिल करने के लिए एक वैकल्पिक विधि %sप्रत्येक spaceवर्ण के लिए स्थानापन्न है ।


22
यदि आप एक मैक पर हैं, तो आप क्लिपबोर्ड की सामग्री को और भी आसानी से adb shell input text "चिपका सकते हैं: pbpaste"
lowellk

3
आज कुछ घंटे लगते हैं और रिक्त स्थान के मुद्दों के लिए अजगर में एक वर्कअराउंड लिखा है। एक दर्जन सिंक खाते बनाने के बिना अब स्टॉक ब्राउज़र के बुकमार्क को समाप्त करना बहुत आसान है। github.com/gcb/AdbPaste (लोड करने के लिए एमुलेटर प्रतीक्षा करते हुए लिखा गया है और एक युगल ऑनलाइन गेमिंग सत्र ...! $% # धीमा एमुलेटर)
gcb

2
यह कुछ यूटीएफ वर्णों के साथ काम करने के लिए प्रतीत नहीं होता है - भेजने की कोशिश करने के बाद 'ლ\(ಠ益ಠლ\)', यह सिर्फ कहता है 'मारे गए' या सफल प्रतीत होता है और कुछ भी टाइप नहीं किया जाता है, और न ही मुझे एमुलेटर में कुछ भी चिपकाने योग्य है। एसएमएस विधि (मैंने डीडीएमएस से कोशिश की) यहां भी काम नहीं कर रहा है, यह "(????)" के रूप में प्रदर्शित होता है :(
ग्रॉक्सक्स

2
मैं भी रिक्त स्थान के साथ तार नहीं भेज सकता; मुझे% s का उपयोग करना है।
पीटर

2
@ पेटर और रोज, क्या नई लाइन जोड़ने का कोई तरीका है? adb shell input text "This%sis%stext\nDoes%snot%work%here."प्रिंट "यह टेक्स्ट \ n है यहाँ काम नहीं करता है।"
फायरलॉर्ड

84

मैं आमतौर पर वह पाठ भेजता हूं जिसे मैं टेलनेट के माध्यम से एसएमएस संदेश के रूप में कॉपी करना चाहता हूं और फिर एसएमएस संदेश से पाठ की प्रतिलिपि बनाता हूं। ऐसे:

टेलनेट के माध्यम से कनेक्ट करें:

  • वाक्य - विन्यास: telnet localhost <port>
  • उदाहरण: telnet localhost 5554

(5554 डिफ़ॉल्ट पोर्ट है। एमुलेटर का शीर्षक बार उस पोर्ट को दिखाता है जिसका उपयोग किया जा रहा है, इसलिए आप देख सकते हैं कि क्या यह अलग है)।

मेसेज भेजें:

  • वाक्य - विन्यास: sms send <senders phone number> <message>
  • उदाहरण: sms send 1231231234 This is the message you want to send

(आप सिर्फ प्रेषक फोन नंबर बना सकते हैं)

यह लिंक के लिए वास्तव में अच्छी तरह से काम करता है क्योंकि संदेश स्वचालित रूप से हाइपरलिंक में परिवर्तित हो जाता है जिसे आप ब्राउज़र में कॉपी / पेस्ट किए बिना क्लिक कर सकते हैं।

एक बार एमुलेटर संदेश प्राप्त करने के बाद आप इसे कॉपी कर सकते हैं और इसे जहाँ चाहें वहाँ पेस्ट कर सकते हैं।


3
तुम भी telnet की जरूरत नहीं है ... आप ddms से एसएमएस भेज सकते हैं (लेकिन ddms telnet की जरूरत है)। लेकिन अच्छा विचार :)
Tima

@ मूर - यह एक महान विचार है। धन्यवाद!
जोएल बेकहम

1
रुचि रखने वाले किसी के लिए, बस ऐसा करने के लिए एक शेल स्क्रिप्ट बनाई गई है: gist.github.com/2050770
टोड Mazierski

7
यह उत्तर ओवरकिल है। उपयोग करें adb। मेरा जवाब देखिए।
रोज पेरोन

1
ओवरकिल या नहीं, लेकिन यह विशेष पात्रों से बचने की आवश्यकता के बिना, पाठ को चिपकाने की अनुमति देता है।
दिमित्री

28

बस जहाँ से भी कॉपी करें, क्लिक करें और एमुलेटर फोन के एडिट टेक्स्ट पर क्लिक करें, जहाँ आप चाहते हैं कि टेक्स्ट (जिस तरह आप दबाएंगे और वास्तविक फोन पर चिपकाना चाहते हैं), PASTE विकल्प दिखाई देगा, फिर PASTE।


3
धन्यवाद! निश्चित रूप से मेरा पसंदीदा जवाब। एमुलेटर के वर्तमान संस्करण के साथ, यह बहुत सुविधाजनक है। (वर्तमान एमुलेटर में "सेटिंग" के तहत एमुलेटर नियंत्रण में एक सेटिंग है जो क्लिपबोर्ड साझा करने की अनुमति देता है।)
अल्बर्ट सी ब्रौन

यह मैक पर पेस्ट करने का तरीका है, क्योंकि कमांड कुंजी डिफ़ॉल्ट रूप से स्पर्श इशारों को शुरू करती है।
जिम

19

यकीन नहीं है कि यह उपयोगी है, लेकिन, अगर आपको मोबाइल ब्राउज़र में खोले जाने के लिए डेस्कटॉप ब्राउज़र से एक लंबे URL की आवश्यकता है, तो आप उस URL के साथ एसएमएस भेज सकते हैं और सीधे संदेश ऐप से खोल सकते हैं।

यहां छवि विवरण दर्ज करें


आप उस टेक्स्ट को कॉपी भी कर सकते हैं। मुझे इस तरह से सबसे सरल और मुश्किल चाल में से एक मिला!
हिर्बोड बेहनाम

मुझे यह त्रुटि मिली: "संदेश नहीं भेज सकते, रेडियो बंद है" (मैकबुक पर)
Atetc

यह निश्चित रूप से उपयोगी है! एमुलेटर के बहुत ही यूआई से, कोई टेलनेट, कोई पैरामीटर नहीं। और URL उपयोग का मामला मेरी जरूरतों को पूरा करता है। एक बहुत प्रभावी उपाय।
अल्बर्टो डी कारो

11

यदि आप मैक पर एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं, तो आपको 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'

7

मैं इस समस्या से थक गया इसलिए मैंने इसे संभालने के लिए सिर्फ यह उपनाम बनाया:

alias ap="pbpaste | xargs adb shell input text"

फिर जब आप एक नई टर्मिनल विंडो खोलते हैं, तो "एपी" टाइप करके जो कुछ भी आपके क्लिपबोर्ड पर होता है वह एमुलेटर के सक्रिय रूप से चयनित टेक्स्ट फ़ील्ड में पेस्ट हो जाएगा।

सेट अप

बस इसे अपने प्रोफ़ाइल में जोड़ें (अधिकांश उपयोगकर्ताओं के ~/.bash_profileलिए जो कि zsh उपयोगकर्ताओं के लिए है ~/.zshrc) हर जगह उपलब्ध उपनाम बनाने के लिए। वैकल्पिक रूप से, यदि आप एक bash उपयोगकर्ता हैं (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. कि क्या करना है
शरीफ

6

केवल एपीआई स्तर के लिए> = 24

अपने स्थानीय मशीन से किसी भी पाठ को कॉपी करें और फिर बस इस कमांड को चलाएं

adb shell input keyevent 279

सुनिश्चित करें कि एंड्रॉइड एमुलेटर सेटिंग्स में Enable Clipboard Sharingविकल्प सक्षम हैं


5

शायद थोड़ा मुश्किल है, लेकिन आप एमुलेटर नियंत्रण का उपयोग करके एमुलेटर को एसएमएस भेज सकते हैं। फिर आपको सभी पाठ को फिर से लिखना नहीं है यदि यह लंबा है और इसे एमुलेटर में कॉपी-पेस्ट कर सकते हैं।

एक और तरीका: "टेलनेट लोकलहोस्ट पोर्ट" के माध्यम से एमुलेटर से कनेक्ट करें और फिर एमुलेटर को एक टेक्स्ट इनपुट ईवेंट भेजने के लिए हार्डवेयर इवेंट का उपयोग करें (यूटीएफ -8 की आवश्यकता है)। देखो इस


5

आप इसे बिना वर्कआर्डर के भी कर सकते हैं। बस क्लिक करें और इनपुट फ़ील्ड में थोड़ा दबाए रखें जब तक कि पेस्ट नोटिफिकेशन दिखाई न दे और फिर पेस्ट पर क्लिक करें। बस!


4

लिनक्स पर यह क्लिपबोर्ड से सीधे टेक्स्ट पेस्ट करेगा

adb shell input text "'$(xclip -selection c -o)'"

उदाहरण के लिए इस कमांड के साथ वैश्विक कीबोर्ड शॉर्टकी बनाना भी बहुत उपयोगी है Ctrl+Shift+Super+V


3

यह विंडोज एप्लिकेशन बनाया गया है जो उपयोगकर्ताओं को एक विजुअल इंटरफ़ेस से एंड्रॉइड एमुलेटर या कनेक्टेड डिवाइस पर पेस्ट कॉपी करने की अनुमति देता है। https://github.com/Florin-Birgu/Android-Copy-Paste

यहां छवि विवरण दर्ज करें


साझा करने के लिए धन्यवाद!
फ्रेशक्रिस

2

क्या आपने C2DM को देखा है? chrome2phone और fox2phone लिंक और क्लिपबोर्ड टेक्स्ट भेज सकते हैं और इसे फोन पर स्वचालित रूप से कॉपी कर सकते हैं। इसके अलावा, एडीबी शेल का उपयोग करने का प्रयास करें। एक सेवा कमांड (/ सिस्टम / बिन / सेवा) है जो सेवाओं (सर्विस कॉल क्लिपबोर्ड ...) का उपयोग कर सकती है। लेनदेन कोड क्रमशः 1, 2 और 3 हैं, getClipboardText, setClipboardText, और hasClipboardText के लिए क्रमशः।


1

विजुअल स्टूडियो एमुलेटर का उपयोग करते हुए, यहां मेरा तरीका है।

पहले एक वर्चुअल एसडी कार्ड को माउंड करें:

  1. एमुलेटर के लिए अतिरिक्त टूल (छोटे >> आइकन) का उपयोग करें और एसडी कार्ड टैब पर जाएं।
  2. वर्चुअल एसडी कार्ड के साथ सिंक करने के लिए अपने कंप्यूटर पर एक फ़ोल्डर का चयन करें।
  3. एसडी कार्ड से खींचो, जो चयनित फ़ोल्डर पर एक फ़ोल्डर संरचना बनाएगा।

पाठ को स्थानांतरित करने के लिए एक पाठ फ़ाइल सेट करें:

  1. अपनी पसंद का पाठ संपादक स्थापित करने के लिए Google Play Store का उपयोग करें
  2. आपके द्वारा पहले बनाई गई वर्चुअल एसडी कार्ड निर्देशिका की डाउनलोड निर्देशिका में आपके कंप्यूटर पर एक पाठ फ़ाइल बनाएं।

जब भी मुझे क्लिप बोर्ड को पाठ भेजने की आवश्यकता होती है।

  1. ऊपर बनाई गई पाठ फ़ाइल को संपादित करें।
  2. अतिरिक्त टूल (छोटे >> आइकन) पर जाएं और पुश टू एसडी कार्ड चुनें।
  3. मेरे द्वारा इंस्टॉल किए गए टेक्स्ट एडिटर में टेक्स्ट फ़ाइल खोलें और टेक्स्ट को क्लिप बोर्ड पर कॉपी करें। (संवाद खुलने पर माउस को दबाए रखें, सभी चुनें और फिर कॉपी आइकन पर क्लिक करें)

एक बार यह दोहराने के लिए बहुत आसान है। एक ही विधि अन्य एमुलेटर पर लागू होगी आपके द्वारा अपनी टेक्स्ट फ़ाइल को एमुलेटर पर धकेलने के लिए एक अलग विधि का उपयोग करने की आवश्यकता हो सकती है।


इसके अलावा, मैं जिस पाठ संपादक का उपयोग करता हूं वह मुझे सूचित करता है कि सामग्री बदल गई है और मुझसे पूछें कि क्या मैं इसे फिर से लोड करना चाहता हूं।
अलेक्जेंडर हिगिंस

1

(उत्तर के लिए टिप्पणी चर्चा में परिवर्तित)

विंडोज़ पर केवल समाधान: https://github.com/gcb/AdbPaste

इस समस्या के आसपास काम करने के लिए इसे एक दो घंटे में लिखा। मैं अब 100% लिनक्स पर वापस आ गया हूं, इसलिए इसे एक योगदानकर्ता या अनुचर के रूप में शामिल होने के लिए स्वतंत्र महसूस करें!


इसके लिए धन्यवाद। दूसरों पर ध्यान दें: यह कई लाइनें भेजने के लिए धीमा है। मेरे पास अपलोड करने के लिए एक 3 पेज LUA स्क्रिप्ट है और यह समाधान फ़ाइल स्रोत से 20 मिनट की तरह है। Google को वास्तव में इस आवश्यकता को संबोधित करने की आवश्यकता है। मैं एक ओपन सोर्स कीबोर्ड ऐप के बारे में जानता हूं जिसमें टेलनेट इंटरफ़ेस है जो बहुत तेज़ होगा, लेकिन कीबोर्ड को अंदर / बाहर स्विच करना एक अतिरिक्त कदम बन जाता है।
राउंडस्पारो हिल्टैक्स

1
मेरी पिछली टिप्पणी में बताई गई गति के मुद्दे को हल करने के लिए: मैंने पाया कि यह डिवाइस पर एक छोटे सहायक ऐप को डालने के लिए बहुत तेज़ है जो कि एडीबी प्रसारण कमांड से क्लिपबोर्ड सामग्री ले सकता है। यह सीधे इनपुट के बजाय क्लिपबोर्ड को पॉपअप करता है जैसा कि AdbPaste करता है - लेकिन मैं इसे एक टेक्स्ट फ़ाइल पढ़ने के लिए बढ़ाने में सक्षम था और मेरे 3 पेज LUA स्क्रिप्ट के लिए अब इसे adb कमांड से जाने में केवल 1 या 2 सेकंड लगते हैं। पाठ बॉक्स। एप्लिकेशन को क्लिपर कहा जाता है और पाठ फ़ाइल को पढ़ने के लिए बढ़ाया जाता है: github.com/RoundSparrow/clipper
RoundSparrow hilltx

1

कमांड लिखें: एडीबी डिवाइस (यह वर्तमान में कनेक्ट किए गए डिवाइस को सूचीबद्ध करेगा) जहां आप टेक्स्ट लिखना चाहते हैं, टेक्स्टबॉक्स का चयन करें। कमांड लिखें: adb शेल इनपुट टेक्स्ट "Yourtext" (सुनिश्चित करें कि केवल एक डिवाइस इस कमांड को चलाने के लिए जुड़ा हुआ है) हो गया!


0

मैं यहां उसी समस्या का हल ढूंढता हुआ आया, और इस समस्या को हल करने के लिए एक Android एप्लिकेशन लिखना समाप्त किया। आप इसे http://www.box.net/sared/6203bn441bfltkimajmk पर डाउनलोड कर सकते हैं । बस प्राथमिकताएं मेनू के माध्यम से एक URL दें एक जगह पर इंगित करें जहां आप वेब प्रतिक्रिया को आसानी से बदल सकते हैं। वेब प्रतिक्रिया की पहली पंक्ति आपके एमुलेटर के क्लिपबोर्ड पर आपके लिए कॉपी की जाएगी। अधिक विवरण http://agilesc.barryku.com/?p=255 पर देखे जा सकते हैं ।


1
आपको यहां निष्पादन योग्य कोड पोस्ट नहीं करना चाहिए। स्रोत कोड बहुत बेहतर होगा।
lowellk

0

मैक और लिनक्स के लिए अपने अलियास_बैश फ़ाइल में इस फ़ंक्शन को आज़माएं (मैक लोगों के लिए / etc / aliases_bash में स्थित है, 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'

' एमुलेटर इनपुट के लिए आपका पाठ ' एमुलेटर टेक्स्ट फील्ड पर इनपुट होगा।

कुदोस ने एलियट को सेड के लिए अपने प्रतिस्थापन स्ट्रिंग के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.