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

upravlenie

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

84728


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


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


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


Нужна помощь... как заставить публиковаться самйлы в зеннодроиде?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Думаю, что нужно использовать эмодзи отдельно, без обработки спинтаксом как текст.
 

upravlenie

Client
Регистрация
31.12.2020
Сообщения
232
Благодарностей
16
Баллы
18
Думаю, что нужно использовать эмодзи отдельна, без обработки спинтаксом как текст.
Я бы рад, но не могу понять как. Пробовал в текстовый файл их помещать и брать через список. В итоге все равно вопросы публикует. Пробовал ставить апк приложений эмоджи (как доп клавиатура). Но мему не хочет с ней работать... эмулятор эту клавиатуру не показывает. Если есть мысли, буду рад услышать)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

upravlenie

Client
Регистрация
31.12.2020
Сообщения
232
Благодарностей
16
Баллы
18
не работает так( проблема именно в мему видимо...
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Попробуйте такой код:
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

bitardenko

Client
Регистрация
27.12.2020
Сообщения
91
Благодарностей
73
Баллы
18
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?)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Что есть 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.
 

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
У меня версия 2.2.5.0, но ошибка та же( Куда смотреть мб подскажет кто?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
Запросил более свежий вариант зеннодроид и все заработало
 

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
Не нашлось решения нюанса ?
 

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
Попробуйте такой код:
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);
Так тоже не работает. Возможно есть еще варианты?
 

kane16

Client
Регистрация
04.01.2021
Сообщения
73
Благодарностей
106
Баллы
33
Регистрация
20.06.2018
Сообщения
1
Благодарностей
1
Баллы
3
Тоже столкнулся с данной проблемой при работе с 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

theinova

Client
Регистрация
07.09.2016
Сообщения
118
Благодарностей
79
Баллы
28
Не нашлось ли решения по лучше?
В принципе вариант 2 устраивает - раз лучше нету. Кто-нибудь помогите подправить чуток:

C#:
//Вариант 2
string catFace = char.ConvertFromUtf32(0x1F638);
droid.Input.SendText(catFace);
Нужно чтоб брал с переменной 0x1F638
 

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
C#:
string catf = project.Variables["имя переменной"].Value;
string catFace = char.ConvertFromUtf32(catf);
droid.Input.SendText(catFace);
поидее вот так, но у меня все еще не сработало(
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
474
Благодарностей
372
Баллы
63
поидее вот так, но у меня все еще не сработало(
В принципе вариант 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

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