Поиск сообщества
Показаны результаты для тегов 'Intent'.
Найдено: 17 результатов
-
Пишут про некие intent, с помощью которых можно наладить "общение" между сервисом и приложением. Расскажите как это делается? Поделитесь кодом, чтобы в голове прояснилось
- 12 ответов
-
[Android] Обработка приложением неявного намерения (Intent)
Belov.V. опубликовал вопрос в Намерения (Intent)
Приложение зарегистрировано для обработки файла по типу через файл манифеста (неявное намерение). <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/xml" /> </intent-filter> В списке выбора появляется. Как корректно в приложении получить содержание Intent (имя файла, путь)? Пробовал реализовать через подписку на получение сообщения на изменение статуса приложения: TMessageManager.DefaultManager.SubscribeToMessage(TApplicationEventMessage, DoApplicationEventChanged); При этом событие вызвавшее активацию определить можно, но вот как добраться до Intent не пойму: procedure TForm1.DoApplicationEventChanged(const Sender: TObject; const Message: TMessage); var Intent : JIntent; app_data : TApplicationEventData; begin if not(Message is TApplicationEventMessage) then exit; app_data := TApplicationEventMessage(Message).Value; case app_data.Event of FinishedLaunching, BecameActive : .... end; end; Что-то застрял я на этом. Как вообще добраться до открывшего приложение Intent? Если реализовывать через IFMXApplicationEventService вопрос в итоге такой же. Если есть описание реализации аналогичного функционала для iOS, буду благодарен.- 10 ответов
-
Знающие люди, подскажите пожалуйста, как в iOS одно приложение может запустить другое приложение, как передать картинку в другое приложение, готовое его принять, как при запуске обрабатывать в своем приложении параметры, переданные из другого приложения? В Android для этого есть механизм Intent Filter, а как это устроено в iOS, и как с этим работать в RAD Studio?
-
Доброго времени суток подскажите пожалуйста как мне получить ссылку из браузера запущенного через intent в общем суть такова: 1 запускаю браузер через интент с сылкой http://fire-monkey.ru 2 на ссылке происходит редирект 3 я попадаю на http://fire-monkey.ru/forum/ Как получить последнюю ссылку после редиректа? в данном случае она равна http://fire-monkey.ru/forum/ var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setData(StrToJURI('http://fire-monkey.ru')); SharedActivity.startActivity(Intent); end;
-
Возможно ли с помощью intent получить от какого-либо из официальных приложений Вконтакте/Фейсбук/Инст/Google access-token (через кол-бэк метод)? Предусматривается ли данная возможность этими приложениями? Если кто делал - приведите, пожалуйста, пример получения результата.
- 6 ответов
-
- intent
- startactivityforresult
- (и ещё 4 )
-
Здравствуйте. Пишу на Delphi 7. И все было нормально пока не у нас не появился терминал сбора данных на Androide. На Delphi 10 написал простенькое приложение. Но тут встала проблема с занесением данных в поле ввода со сканера штрихкода. В инете нашел, что это дело просто решается интентами. Вообще в windows я подобное делал: вешал процесс, следящий за com-портом, и при появлении данных на нем пересылал их куда надо. В Android должно быть не сложнее. Но я запутался во всей этой куче параметров и функций, передаваемых и получаемых "намерениями". В общем вот что мы имеем на данный момент. В настройках сканера прописано: Intent output - android.intent.ACTION_DECODE_DATA Intent string extra - barcode_string На просторах нашел запуск BroadcastReceiver. На событие получения сообщения повесил ed.Text := JStringToString(csIntent.getExtras.getString(TJIntent.JavaClass.EXTRA_INTENT)); где csIntent параметр из BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); Но ничего не выходит. Я подозреваю, что данные из сканера где-то в структуре csIntent. Но, к сожалению, в отладке дальше адреса этой переменной пробраться не получилось. Причем строка ed.Text := JStringToString(csIntent.getAction); возвращает в Text название интента: "android.intent.ACTION_DECODE_DATA". Помогите разобраться со структурой JIntent. Спасибо.
-
В Android 6 на Berlin 10.1.1 перестала работать стандартная функция TakePhotoFromCameraAction. Иногда работает, иногда нет. Поэтому я решил написать нативную замену этой функции. За основу взят пример с портала разработчиков Android. Мой пример про видео на базе отправки Intetn смартфону и получение результата в виде другого Intent, отлично работает. Но для фотографий этот пример сыпется, после выполнения фотографирования система возвращается в мое приложение и оно вылетает с ошибкой: Если заглянуть в исходнки, там все обвязано сообщениями в лог монитора. Последнее сообщение «+ Intent is sent». Помогите пожалуйста разобраться, в чем может быть проблема? PhotoIntent.zip
-
Здравствуйте. Пришла беда откуда не ждал, Delphi 10.2 не знает библиотеки androidapi.... FMX.Helpers.... и тд и тп. И никак не получается их установить, либо я тупой либо я даже незнаю что может быть. фалы *.dcu лежат в папке ...\lib\android\release. Помогите решить проблему очень нужно использовать намерения. уже и переустанавливал платформу android не помогает.
- 10 ответов
-
procedure TfMain.PhotoClick(Sender: TObject); var sPath,FLastPhotoName:string; {$IF DEFINED(ANDROID)} PhotoIntent: JIntent; photoUri: Jnet_Uri; JFileName: JFile; {$ENDIF} begin {$IF DEFINED(ANDROID)} FLastPhotoName := ''; FLastPhotoFullName := ''; FMessageSubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, HandleActivityMessage); PhotoIntent := TJIntent.JavaClass.init(TJMediaStore.JavaClass.ACTION_IMAGE_CAPTURE); if (PhotoIntent.resolveActivity(TAndroidHelper.Context.getPackageManager()) <> nil) then begin FLastPhotoName := THashMD5.GetHashString('JPEG PHOTO FILE ' + DateTimeToStr(Now)) + '.jpg'; FLastPhotoFullName := TPath.Combine(TPath.GetSharedDocumentsPath, FLastPhotoName); JFileName := TJFile.JavaClass.init(StringToJString(FLastPhotoFullName)); photoUri := TJnet_Uri.JavaClass.fromFile(JFileName); PhotoIntent.putExtra(TJMediaStore.JavaClass.EXTRA_OUTPUT, TJParcelable.Wrap((photoUri as ILocalObject).GetObjectID)); if PhotoIntent.resolveActivity(TAndroidHelper.Activity.getPackageManager) <> nil then TAndroidHelper.Activity.startActivityForResult(PhotoIntent, REQUEST_IMAGE_CAPTURE); end; {$ENDIF} Приложение камеры открывается, фото делается, но при закрытии приложение вылетает В логах ошибки java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.embarcadero.test/com.embarcadero.firemonkey.FMXNativeActivity}: java.lang.NullPointerException
-
Подскажите пожалуйста как определить что программа запустилась из AlarmManager? Я сделал это так, по аналогии с http://stackoverflow.com/questions/6751564/how-to-pass-a-boolean-between-intents В Java коде, который компилиться в итоге в classes.dex (с XE7 не нужен DEX файл, можно подключить Jar файл сразу к проекту!), добавил строчку public class AlarmReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Intent TestLauncher = new Intent(); TestLauncher.setClassName(context, "com.embarcadero.firemonkey.FMXNativeActivity"); TestLauncher.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); TestLauncher.putExtra("StartedFromAM", true); context.startActivity(TestLauncher); } } По идее теперь при старте из AlarmManager, должно быть true в активити. Из Delphi пытаюсь получить это значение, но всегда возвращает false (0). ShowMessage(SharedActivity.getIntent.getBooleanExtra(StringToJString('StartedFromAM'), false).ToString ); И вот так тоже: ShowMessage ( MainActivity.getIntent.getBooleanExtra(StringToJString('StartedFromAM'), false).ToString); Не подскажете в чем может быть проблема?
- 1 ответ
-
- putextra
- alarmmanager
-
(и ещё 1 )
C тегом:
-
Я хочу запустить приложение из другого приложения под iOS и под Android. В зависимости от переданного параметра, который я хочу получить в главной форме, будет открываться соответствующая стартовому параметру форма (Activity в Android). Пример: Из приложения "Папа" запустить приложение "Дочка", при этом сообщив "Помой посуду!". И чтобы приложение "Дочка" сообщила "Хорошо, папа" и открыло форму "Мойка посуды". ))) Как ее решить на разных платформах? В Windows это делается запуском приложения с соответствующими параметрами, в зависимости от их значения из проекта или главной формы открывается нужная форма. В Android для этого сделаны Intent фильтры. Только не понятно, как их обрабатывать в приложениях, написанных в Delphi. Вот как вы это сделали бы? И как такое делается в приложениях под iOS, естественно, тоже написанных на Delphi или С++. UPD 14-09-2016: Для Android решение найдено. Осталось найти решение для iOS.
- 8 ответов
-
- Параметры
- Запуск приложения
- (и ещё 4 )
-
Загрузка извне apk-пакета и запуск его на установку
Mazzay опубликовал вопрос в Работа с файловой системой
Моё приложение при запуске проверяет номер версии и при необходимости обновляется. Обновляется следующим образом: грузит с сервера и сохраняет на устройстве apk-пакет и запускает его на выполнение. Всё замечательно работало до перехода на Android 5.1. Загрузка пакета осуществляется в папку, возвращаемую GetSharedDownloadsPath. Запуск обновления производится следующим кодом: _di_JIntent Intent; _di_Jnet_Uri oUri; _di_JFile oPath; _di_JFile oFile; oPath = TJFile::JavaClass->init(StringToJString(fPath)); // fPath = System::Ioutils::TPath::GetSharedDownloadsPath(); oFile = TJFile::JavaClass->init(oPath, StringToJString(fFile)); // fFile = L"myapp.apk" oUri = TJnet_Uri::JavaClass->fromFile(oFile); Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW); Intent->setDataAndType(oUri, StringToJString(L"application/vnd.android.package-archive")); Intent->setFlags(TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK); SharedActivity()->startActivity(Intent); Application->Terminate(); На Android 5.1 на выполнении этого кода получаю сообщение "... Access denied." Не помню, где, нарыл следующее: Как установить для файла режим Readable, чтобы его могло читать другое приложение? P.S. Внешней карты памяти на устройстве нет. Если её вставить, то работает, ибо с ней GetSharedDownloadsPath возвращает путь именно на внешней карте. Втыкание внешней карты пока рассматривается только как временный костыль, но он не очень интересен, так как устройств, на которых работает приложение 18 штук — не хочется покупать 18 карточек.- 6 ответов
-
- intent
- access denied
-
(и ещё 1 )
C тегом:
-
Здравствуйте, друзья.Я прошу вас, пожалуйста, помогите. var Intent: JIntent; instagram:string; begin instagram:='https://instagram.com/user123'; Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setData(StrToJURI(instagram)); Intent.setPackage(StringToJString('com.instagram.android')); SharedActivity.startActivity(Intent); end; Этот код не работает.Я хочу посмотреть на профиль Instagram пользователя
- 2 ответа
-
- user_profile
-
(и ещё 1 )
C тегом:
-
Как получить Intent, по которому приложение стало активным, после того, как до этого было свернутым? Как известно это метод onNewIntent(), который FMX не поддерживает. Приложение запускается в режиме android:launchMode="singleTask". Пожалуйста, не предлагайте решить задачу через ключи файла манифеста android:launchMode="singleTop" или android:launchMode="standard", которые устанавливают новый intent корневым. Там отдельные вопросы вне текущей темы.
-
JIntent Как правильно запустить видео в плеере из своей программы?
Kitty опубликовал вопрос в Видео плеер
На планшете 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(); } Ничего не происходит. Видео не воспроизводится. Как правильно? -
TWebBrowser [Android] Открытие HTML страницы в браузере по умолчанию
la_coste опубликовал вопрос в Web-Браузер
Доброго времени суток, в процессе изучения Delphi XE5 возник такой вопрос: Возможно ли открыть к примеру HTML страницу из файловой системы устройства в браузере по умолчанию?? Заранее спасибо)