Emoji в зеннодроиде

  • Автор темы Автор темы upravlenie
  • Дата начала Дата начала

upravlenie

Client
Регистрация
31.12.2020
Сообщения
239
Реакции
19
Баллы
18
Коллеги, такая ситуация.
Использую спинтакс, чтобы взять несколько эмодзи.

84728


Кладу их в переменную. Уже ерунда выходит... смотрим скрин
84725


после спинтакса он в переменную кладет вот такое:
84726


после этого при вводе текста из переменной, выходит совсем печаль беда, смотрим скрин
84727


Нужна помощь... как заставить публиковаться самйлы в зеннодроиде?
 
Думаю, что нужно использовать эмодзи отдельно, без обработки спинтаксом как текст.
 
Думаю, что нужно использовать эмодзи отдельна, без обработки спинтаксом как текст.
Я бы рад, но не могу понять как. Пробовал в текстовый файл их помещать и брать через список. В итоге все равно вопросы публикует. Пробовал ставить апк приложений эмоджи (как доп клавиатура). Но мему не хочет с ней работать... эмулятор эту клавиатуру не показывает. Если есть мысли, буду рад услышать)
 
не работает так( проблема именно в мему видимо...
 
Попробуйте такой код:
C#:
Развернуть Свернуть Копировать
var droid = instance.DroidInstance;

//Вариант 1
var bytes = new byte[] {0xF0, 0x9F, 0x98, 0x80};
string face = Encoding.UTF8.GetString(bytes, 0, 4);
droid.Input.SendText(face);

//Вариант 2
string catFace = char.ConvertFromUtf32(0x1F638);
droid.Input.SendText(catFace);
 
  • Спасибо
Реакции: theinova
var droid = instance.DroidInstance;
Что есть instance.DroidInstance? У меня в ПМе дроида этого нет.

Instance' does not contain a definition for 'DroidInstance' and no accessible extension method 'DroidInstance' accepting a first argument of type 'Instance' could be found (are you missing a using directive or an assembly reference?)
 
Что есть instance.DroidInstance? У меня в ПМе дроида этого нет.

Instance' does not contain a definition for 'DroidInstance' and no accessible extension method 'DroidInstance' accepting a first argument of type 'Instance' could be found (are you missing a using directive or an assembly reference?)
Наверное вам надо версию программы поновее. инстансы добавили в 2.2.5.0.
 
У меня версия 2.2.5.0, но ошибка та же( Куда смотреть мб подскажет кто?
 
Запросил более свежий вариант зеннодроид и все заработало
 
Не нашлось решения нюанса ?
 
Попробуйте такой код:
C#:
Развернуть Свернуть Копировать
var droid = instance.DroidInstance;

//Вариант 1
var bytes = new byte[] {0xF0, 0x9F, 0x98, 0x80};
string face = Encoding.UTF8.GetString(bytes, 0, 4);
droid.Input.SendText(face);

//Вариант 2
string catFace = char.ConvertFromUtf32(0x1F638);
droid.Input.SendText(catFace);
Так тоже не работает. Возможно есть еще варианты?
 
Тоже столкнулся с данной проблемой при работе с Appium и Memu. Нашел такое решение:

- установить на эмулятор кастомную виртуальную клавиатуру;
- создать кубик c# для работы с ней через adb (decimal code можно глянуть здесь):
C#:
Развернуть Свернуть Копировать
// Decimal code
project.Variables["emoji"].Value = "128512";
// ADB port
project.Variables["system_port"].Value = "21563";

Process adb = new Process();
adb.StartInfo.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System);
adb.StartInfo.FileName = @"cmd.exe ";
adb.StartInfo.Arguments =
@"/c ""adb -s 127.0.0.1:" + project.Variables["system_port"].Value + " shell ime set com.android.adbkeyboard/.AdbIME"
+ @" && adb -s 127.0.0.1:" + project.Variables["system_port"].Value + " shell am broadcast -a ADB_INPUT_CHARS --eia chars " + project.Variables["emoji"].Value;
adb.StartInfo.CreateNoWindow = true;
adb.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
adb.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
adb.Start();
 
  • Спасибо
Реакции: VladZen
Не нашлось ли решения по лучше?
В принципе вариант 2 устраивает - раз лучше нету. Кто-нибудь помогите подправить чуток:

C#:
Развернуть Свернуть Копировать
//Вариант 2
string catFace = char.ConvertFromUtf32(0x1F638);
droid.Input.SendText(catFace);

Нужно чтоб брал с переменной 0x1F638
 
C#:
Развернуть Свернуть Копировать
string catf = project.Variables["имя переменной"].Value;
string catFace = char.ConvertFromUtf32(catf);
droid.Input.SendText(catFace);

поидее вот так, но у меня все еще не сработало(
 
поидее вот так, но у меня все еще не сработало(
В принципе вариант 2 устраивает - раз лучше нету.
Нужно чтоб брал с переменной 0x1F638

C#:
Развернуть Свернуть Копировать
var droid = instance.DroidInstance;
int catf = Convert.ToInt32(project.Variables["hexValue"].Value, 16);
string catFace = char.ConvertFromUtf32(catf);
droid.Input.SendText(catFace);

hexValue это переменная вида 0x1F638
 
  • Спасибо
Реакции: djaga

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)