2013-12-02 5 views

ответ

58

Копирование/вставка текста с хоста в виртуальное устройство, возможно, так как version 2.1.0. (Обратите внимание, что просто обновления Genymotion не хватает, вам также необходимо воссоздать виртуальное устройство после обновления до версии 2.1.0 или выше.)

Вставка может выполняться с помощью длинного нажатия/клика + PASTE в виртуальном устройстве.

+0

, похоже, не работает на OSX (версия 2.2.2 виртуального устройства). – user802421

+0

Извините, у меня нет Mac, поэтому кто-то должен прокомментировать это. Единственное, что я могу сказать, это то, что после использования функции copy/paste в течение более длительного времени я сталкивался с ситуациями, когда это внезапно больше не работало, и мне пришлось сначала перезагрузить эмулятор (возможно, потому, что соединение adb было потеряно). – Daniel

+3

У меня есть Mac, работающий с Yosemite, и это отлично работает для меня в Genymotion v2.3.1. – adamdport

3

Поскольку Genymotion не поддерживает это действие (даже если вы откроете VirtualBox, параметры виртуальной машины и установить Shared Clipboard, она по-прежнему не работает с Genymotion 2.0.3 Я использую)

Итак, я использую альтернативный способ, если ваш текст не является секретом, вы можете использовать онлайн-заметку, например http://shrib.com/

Вставьте свой текст там, затем откройте ссылку на Android VM, скопируйте его и вставьте в нужное место. Сделайте несколько шагов, но если вы не хотите вводить длинный текст (например, мой, длинный SQL)

1

У меня была аналогичная потребность некоторое время назад. Мое решение заключалось в том, чтобы написать быстрое приложение, которое прослушивает порт UDP и выгружает все, что входит в этот порт, в SMS (текстовое) сообщение. Затем с главной машины я отправил ее с netcat из оболочки.

UDP код слушатель приложение:

package com.example.messagemyself; 

import java.net.DatagramPacket; 
import java.net.DatagramSocket; 
import java.net.SocketException; 
import android.app.Service; 
import android.content.ContentValues; 
import android.net.Uri; 
import android.util.Log; 

public class GetUDPData extends Thread { 
    private static final String TAG = "GetUDPData"; 
    private DatagramSocket datagramSocket; 
    private DatagramPacket packet; 
    boolean running = true; 
    Service srv; 
    public GetUDPData(Service s) { 
     srv = s; 
    } 
    public void done() { 
     datagramSocket.close(); 
     running = false; 
    } 
    @Override 
    public void run() { 
     try { 
      datagramSocket = new DatagramSocket(4444); 
      datagramSocket.setSoTimeout(0); 
      byte[] buffer = new byte[1024]; 
      packet = new DatagramPacket(buffer, buffer.length); 
     } catch (SocketException e) { 
      e.printStackTrace(); 
     } 
     while(running) { 
     try { 
      Log.d(TAG,"Receiving"); 
      datagramSocket.receive(packet); 
      String message = new String(packet.getData(),0,packet.getLength()); 
      Log.d(TAG,"Received "+message); 
      ContentValues values = new ContentValues(); 
      values.put("address", "12345"); 
      values.put("body", message); 
      // Post to SMS inbox 
      srv.getContentResolver().insert(Uri.parse("content://sms/inbox"), values); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 
    } 
} 

Выполнить этот поток в приложении (вы можете использовать по умолчанию привет-мир один, например); Затем, чтобы отправить текстовое сообщение, запустить Netcat с опцией -u для UDP:

echo "my message" | nc -u 192.168.56.101 4444 

Не забудьте использовать genymotion IP-адрес.

Я также сделал еще один шаг и создал скрипт python, который захватывает данные из системного буфера обмена и выгружает его из UDP-порта. Это также может быть полезно, особенно если вы хотите отправить текст не-ascii или что-то в этом роде (в моем случае мне нужно было отправить японские символы и настроить оболочку Windows, чтобы отобразить символы, которые оказались подвигом, которого я не хочу на слабое сердце.)

В любом случае, вот сценарий. Выгрузите его в файл .py, а затем дважды щелкните по нему, чтобы отправить содержимое буфера обмена в сокет UDP.

from Tkinter import Tk 
r = Tk() 
datatosend = r.selection_get(selection = "CLIPBOARD") 
r.destroy() 

import time 
import socket 

UDP_IP = "192.168.56.101" 
UDP_PORT = 4444 

print "sending SMS: %s"%datatosend 
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP 
sock.sendto(datatosend, (UDP_IP, UDP_PORT)) 
time.sleep(3) 
# The sleep is not necessary, but I like it since you can see the 
# message for a bit before the shell exits. 
3

Если ваша версия Genymotion поддерживает копирование/вставку, вы можете использовать меню + C и меню + V для копирования/вставки (клавиша меню обычно находится между Alt и Ctrl и действует как правая кнопка мыши).

1

длинный кран на правой нижней части мыши и отпустите, тогда вы можете вставить

Смежные вопросы