Kitty

Пользователи
  • Публикаций

    791
  • Зарегистрирован

  • Посещение

  • Победитель дней

    16

Весь контент Kitty

  1. Например, стандартные приемы, которые можно использовать в Windows - привязка к оборудованию. Просто интересно в познавательных целях, какие технологии используются для защиты в андроид приложениях.
  2. Планшет PIPO M7 Pro Андроид 4.4.2. Если запустить приложение на планшете и затем повернуть планшет на 90 градусов, при этом приложение также поворачивается и затем вернуть планшет в исходное состояние, то кнопки перестают отвечать на нажатие. После поворота никакой код не работает: //C++ Builder XE6 void __fastcall TForm1::Button2Click(TObject *Sender) { Close();//после вращения планшета не работает, до вращения все нормально } С чем это может быть связано и как исправить? Спасибо.
  3. Мне надо запускать видео по расписанию в плеере MX Андроид на устройстве iconBIT Андроид 4.2. Плеер MX настроен на проигрывание видео по кругу. В 10.00 играть зациклено одно видео в плеере. В 12.00 перестать играть видео №1 и начать играть зациклено другое видео в плеере. и т.д. Исходя из того что видео в плеере будет проигрываться по таймеру, надо ли вносить какие-либо изменения в код проигрывания видео ниже: //C++ Builder XE6 //функция будет вызываться по таймеру: void PlayVideo(const String AFileName) { _di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW); _di_Jnet_Uri Data = StrToJURI(AFileName); Intent->setDataAndType(Data, StringToJString(L"video/mp4")); SharedActivity()->startActivity(Intent); }
  4. У меня в таймере, если происходит ошибка, выдается сообщение пользователю и программа закрывается. Пример кода: ShowMessage(L"Не найден видео файл " + VideoFileName + L". Программа будет закрыта."); Application->Terminate(); Также на форме есть кнопка просто закрытия главной формы приложения: Close(); В обоих случаях программа реагирует одинаково - уходи в список ранее запускаемых программ. Есть ли принципиальная разница для Андроид приложений между кодом: Application->Terminate(); и закрытием главной формы: Close(); ?
  5. И так тоже работает: void __fastcall TForm1::FormResize(TObject *Sender) { Application->ProcessMessages(); Sleep(5); }
  6. Вот это исправляет проблему: void __fastcall TForm1::FormResize(TObject *Sender) { //Портретная ориентация if (Height > Width) { Application->ProcessMessages(); Realign(); } //Альбомная ориентация else if (Height < Width) { Application->ProcessMessages(); Realign(); } } Спасибо Nix0N.
  7. Может кому пригодиться. Использование java классов JIntent и JNet_Uri. Спасибо разработчику Indy Remy Lebeau (TeamB) http://bcbjournal.org/forums/ void PlayVideo(const String AFileName) { _di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW); _di_Jnet_Uri Data = StrToJURI(AFileName); Intent->setDataAndType(Data, StringToJString(L"video/mp4")); SharedActivity()->startActivity(Intent); }
  8. У меня на форме панель с выравниванием по центру на панели две кнопки и текстовая метка. Все, больше ничего нет. Никаких стилей, все по дефолту.
  9. Большое спасибо за развернутые ответы! Да, именно так и планируется. Закуплены однотипные устройства: http://rozetka.com.ua/iconbit_movie_3d_iptv/p387929/ и сугубо для этих целей - играть по одному видео по расписанию. Сейчас вместо программы, в назначенное время ходит человек и запускает нужные видео. Конкретно на этих устройствах еще не тестировала программу т.к. пока все в разработке. На моем же PIPO M7 Андроид 4.4.2 похоже, что работает. Обидно будет, что возможно на этих устройствах программа не заработает как надо, но плюс по любому есть - изучение FM.
  10. Большое спасибо! Видео запускается в том же экземпляре MXPlayer-a. Устройства с Андроид подсоединены к телевизорам, которые весят в ресторане фаст фуда. На телевизорах крутятся видео ролики (реклама-меню и т.п.). Программа просто должна сама менять видео в назначенное время. Сейчас попробовала на своем планшете, вроде видео меняется в том же окне MXPlayer плеера без заметных проблем. Просто думала может есть какие-то не учтенные подводные камни (утечки памяти и т.п.) т.к. смутно представляю пока ОС Андроид.
  11. Мне надо готовое созданное корпоративное приложение (C++ Builder XE6) разместить на 7 Андроид устройствах фирмы. Как правильно это сделать? Могу я просто скопировать папки моего проекта Release\MyProject на флешку и потом разнести эти папки по всем 7-и Андроид устройствам простым копирование? Если да, то куда предпочтительнее копировать дерево папок моего готового проекта? Как правильно деплоит созданное корпоративное приложение? Или надо все устройства по очереди подсоединять к компьютеру и деплоить через меннеджер? Код приложения будет использовать внешние файлы, которые будут предварительно помещены в папку устройства Download. Спасибо.
  12. Огромное спасибо! Теперь понятно, что если в менеджере все настроено правильно, то достаточно только одного apk для распространения. Подскажите, а какая рекомендация, куда обычно на устройстве принято копировать готовый apk с флешки? Или таких рекомендаций нет и можно копировать куда угодно на устройстве? Спасибо.
  13. На планшете c Андроид 4.4.2 установлены root права. Из андроид маркета установлен MX плеер. В плеере установлена настройка, что он открывает на постоянной основе файлы mp4. Я пытаюсь из своей программы запустить на выполнение файл mp4. Для примера помещаю нужный мне файл mp4 в папку download. Код такой: //C++ Builder XE6 String VideoFileName = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDownloadsPath(), "file1.mp4"); if(FileExists(VideoFileName)) { system(("open " + AnsiString(VideoFileName)).c_str());//ничего не происходит ShowMessage(VideoFileName);// /mnt/internal_sd/Download/file1.mp4 } else { //сюда не попадаем ShowMessage(L"Не найден видео файл " + VideoFileName + L". Программа будет закрыта."); Application->Terminate(); } Ничего не происходит. Видео не воспроизводится. Как правильно?
  14. Спасибо. Подскажите или я правильно сделала рекомендации после перезагрузки: 1. У меня в файле android:debuggable="True" – все нормально. 2. Добавила строку <uses-permission android:name="android.permission.SET_DEBUG_APP" /> и скопировала весь файл на диск Е. 3. На рисунке настройки деплоймента с новым файлом манифеста. Если мой третий шаг правильный, то мне не помогло.
  15. Доп. информация - С++ Builder XE6: Если использовать планшет PIPO M7 Pro с Андроид 4.2.2 то дебаг валиться с сообщением: Unable to start gdbserver on port 64311: Cant open socket Permission denied Мне никакие рекомендации не помогли: http://qc.embarcadero.com/wc/qcmain.aspx?d=119296 http://www.embarcadero.com/starthere/xe6/mobdevsetup/android/en/runandroidtargetfailedhelppage.html После прошивки этого планшета на версию Андроид 4.4.2, сообщение пропало, но дебаг по-прежнему не работает, просто тихо отваливается.
  16. Здравствуйте. В новом С++ Builder XE6 появилась возможность программировать под Андроид. Опыта в этом нет. Подскажите, пожалуйста, как получить путь к файлу в Андроид проекте? Код для Windows приложения не работает в Андроид проекте: String path = ExtractFilePath(Application->ExeName) + L"\\files.ini"; if(FileExists(path)) { //**** } Спасибо.
  17. Спасибо, посмотрела и попробовала. Ничего не помогло. Отладчик отваливается.
  18. Спасибо. У меня в первом топике было как "получить путь к файлу в Андроид проекте?" Вроде я не отклонилась от темы. Разве что еще уточняла можно ли поработать с INI на эмуляторе, но это тоже путь к файлу, только не на реальном устройстве.
  19. Спасибо за рекомендации. У меня все же еще такой вопрос. Вот на устройстве Андроид есть к примеру папка Music или к примеру Download. Эти папки по умолчанию присутствуют в прошивке этого Андроид устройства. Каким кодом я могу увидеть в метке Label1 путь к этим папкам? Например музыкальный фал лежит в папке Music, как из моего приложения достучаться до него? P.S. Можно ли как-то поработать с файлом INI на эмуляторе (для тестирования) или только это возможно после развертывания на реальной устройстве?
  20. Нет. INI файл готовый. В нем периодически руками будут менять некоторые данные в секциях (time/name) и после замены копировать поверх старого INI. INI: [FILE1] time = 10:00:00 name = file1.mp4 [FILE2] time = 12:00:00 name = file2.mp4 ***
  21. Что-то не доходит до меня. Подсоединила планшет с Андроид к RAD XE6, все нормально. Включила отладку по USB. Теперь пытаюсь в режиме debug на планшете увидеть путь к папке с документами: void __fastcall TForm1::Button3Click(TObject *Sender) { //почему-то точки останова не срабатывают Label1->Text = System::Ioutils::TPath::GetDocumentsPath();//стоит точка останова } После нажатия на кнопку вижу на экране планшета какой-то странный путь: /data/data/com.embarcadero.MobProjectHelloWord/files Если поменять GetDocumentsPath на GetHomePath, то получаю тот же путь; /data/data/com.embarcadero.MobProjectHelloWord/files Я хочу разместить на планшете файл INI, иметь к нему доступ и периодически иметь возможность менять этот файл простым копирование поверх. Если я скопирую файл INI на планшете в папку Андроида documents, то как правильно обратиться к этой папке? Созданное приложение будет использоваться во внутренних корпоративных целях (никаких маркетов). Спасибо.