abwabw
-
Постов
4 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные abwabw
-
-
Отвечаю сам себе.
Реализовать на XE5 FM mobile (и по моему и на XE6) распознавание голоса пока невозможно в связи с тем, что ембаркодеровцы в delphi не реализовали дроидовской модуль API: android.speech.
Хотя странно это, этот модуль в дроиде существует с 8 левела, а щаз актуальый уже 19-ый.
-
Хочу попробовать прикрутить к проекту для дроида googl-овское распознавание голоса. Нашёл пример реализации этой функции вот тут или тут.
Помогите перевести на XE5 FM, вот этот кусок:package com.genisoft.inforino; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.speech.RecognizerIntent; public class SpeechRecognitionHelper { public static void run(Activity ownerActivity) { startRecognitionActivity(ownerActivity); } } private static void startRecognitionActivity(Activity ownerActivity) { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Голосовой поиск Inforino"); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH); intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "ru-RU"); ownerActivity.startActivityForResult(intent, SystemData.VOICE_RECOGNITION_REQUEST_CODE); }
Мне кажется, что TNumberBox работает не так
в TNumberBox
Опубликовано
DelphiXE5 Update2 и DelphiXE6 оба с MobileAddOn фсё лицензионное.
Ситуация: создаю FireMonkey Mobile App. На форме размещаю компонент NumberBox (надо вводить цену), присваиваю свойства:
Проблема: Запускаю на гаджете приложение, получаю при запуске пустое поле NumberBox -а (хотя должен стоять 0), ставлю курсор в поле NumberBox, и дальше реакция раздваивается в зависимости от модели гаджета на Google Nexus 5 при вводе цифр - ввод начинается, а на Sony Xperia Z, Samsung GalaxyS4, Samsung Note 3 и других при нажатии на клавиши виртуальной клавиатуры цифры не вводяться. Ситуацию можно исправить только "танцем с бубном", если после запуска приложения поставить курсор в поле NumberBox , потом выйти из него куда-нибудь, а потом опять поставить курсор в поле NumberBox, появиться предустановленный 0 и ввод цифр начнётся на любом гаджете.
Проблема2: если всё-таки ввести цифры в поле, а потом стереть их BackSpace-ом и перейти в другое поле приложения, то стёртое число опять появится в поле.
Вопрос: Как заставить NumberBox сразу и предсказуемо работать на любом гаджете?
Ситуация2: Решил заменить кривоработающий TNumberBox на TEdit с ограничением ввода символов, через отлов переменной var KeyChar: Char события OnKeyDown . Разместил TEdit, в событии OnKeyDown пишу:
Проблема: Но оказалось, что OnKeyDown не срабатывает на точку, запятую, знак минус и пробел (которые есть на вируальной клавиатуре "NumberPad") , т.е. эти символы вводятся в поле TEdit, а OnKeyDown не реагирует на них.
Проверил так, в событии OnKeyDown написал:
Получаю сообщение только при нажатии на кнопки с цифрами, при нажатии на любые не буквенные/цифровые кнопки OnKeyDown не срабатывает.
Пробовал использовать переменную var Key: Word;события OnKeyDown так при любых нажатиях клавиш выдаётся, что Key=0. Может я чего-то не догоняю???
Вопрос: как заставить нормально срабатывать событие OnKeyDown у TEdit на любое нажатие кнопок и получать нормальное значение в переменную Key:Word?
З.Ы. Под Windows(x32) OnKeyDown реагирует на все кнопки, но переменная Key всё равно =0; (см.рис.).