Мой первый опыт и мое первое приложения для ОС Андроид на С++ Builder XE6 показал, что FMX можно использовать для внутренних корпоративных целей.
Приложение создается на привычном С++ языке. Приятно удивило, что поддерживается STL библиотека.
Самым трудным было поиск примеров, как реализовать код, который конкретно зависит от Андроид платформы.
Вот пример как запустить видео на Андроид устройстве:
#include
#include
#include
#include
void PlayVideo(const String AFileName)
{
String EXE = System::Ioutils::TPath::GetExtension(AFileName);
_di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW);
_di_Jnet_Uri Data = StrToJURI(AFileName);
Intent->setDataAndType(Data, StringToJString(L"video/" + EXE));
SharedActivity()->startActivity(Intent);
}
Вот пример нажатия на текстовую метку и переход по ссылке:
void __fastcall TForm1::Label1Click(TObject *Sender)
{
_di_JIntent Intent;
Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW);
Intent->setDataAndType(StrToJURI(L" https://cbuilder.ru"), StringToJString(L"text/html"));
SharedActivity()->startActivity(Intent);
}
Весь остальной код программы написан на привычном С++ Builder языке.
Из замеченных багов:
Конкретно на моем планшете PIPO M7 Pro Андроид 4.4.2 после поворота планшета на 90 градусов и затем поворота обратно, главная форма переставала отвечать на нажатие кнопок. Для моего планшета пришлось добавить код, который исправил эту ситуацию:
void __fastcall TForm1::FormResize(TObject *Sender)
{
Application->ProcessMessages();
Sleep(5);
}
В остальном все нормально, приложение работает и выполняет свою задачу - запуск файлов по расписанию из INI файла.
Размер приложения 6.5 Мг.