Поиск сообщества
Показаны результаты для тегов 'api'.
Найдено: 10 результатов
-
В визуал студии в Xamarin есть такой класс -Java.Security.KeyStore Class, этот класс(как я понял) отвечает за подключение к хранилищу ключей андроида,короче говоря Android keystore system . А вот как достучаться до этой функции в с++builder ?Я хочу сделать привязку приложения через Android keystore system ,а как это сделать в Rad студии не знаю
-
how do i activate the Location ICON for Android Programatically?
Mohamed BEN AMMAR опубликовал вопрос в Вопросы
hello i'm using delphi fmx for building android App i have this code for Activating The WI-FI icon from android device: This could be found here . =========== code ================== uses Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge, Androidapi.JNI.WifiManager; procedure SetWifiEnabled (AEnable: Boolean); var Obj: JObject; WifiManager: JWifiManager; begin Obj: = SharedActivityContext.getSystemService (TJContext.JavaClass.WIFI_SERVICE); if Obj = nil then Exit; WifiManager: = TJWifiManager.Wrap ((Obj as ILocalObject) .GetObjectID); WifiManager.setWifiEnabled (AEnable); end; My question is About Activating Android location: Is it possible to activate the service location icon from android device programatically without using the Location or TLocationSensor component ....? however I know exactly that google has been Deactivate this API since android "4" just for security reasons ..... but i have seen many apps in playstore can activate the service without using this code here ask the user for activate the location manually .... procedure TForm1.GPSSettings; {$IFDEF ANDROID} var Intent: JIntent; {$ENDIF} begin {$IFDEF ANDROID} Intent := TJIntent.Create; Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_LOCATION_SOURCE_SETTINGS); TAndroidHelper.Activity.startActivity(Intent); {$ENDIF} end; in other versions like lolipopup can show just the Allow Permission system dialog timer ....( Asking the user for Allowing this App to Activate the service location ......) I have an android device with lolipopup version and i try to execute the location EMBARCADERO sample but this one can not activate the service location ICON even my device show me the Allow permission dialog where i choose yes allow with never ASK.... Finally , I like the WI-FI code above ..... and i'm wondering if someone here can do this task for me (i need a unit as the WI-FI code above which can offer me the option to activate the Service Location ICON ) I'm ready to paid for that task ..... Sincerelly: Brave. -
Компонент TMapsEngine Возможности Нативный LocationSensor [ANDROID] Геокодинг/Реверс геокодинг через Google API, Yandex API, Here Maps API Построение маршрута через Google Distance API Расчет дистанции по прямой Совместим со стандартным компонентом TLocationSensor Видео демонстрация На видео видно как TMapView косячик с миллионом точек, приложение зависло при отрисовке, но с этим ничего не поделать. Без синхронизации не возможно отрисовать все точки Исходник TMapsEngine_source.zip TMapsEngine_Seattle_10.zip Скачать APK (долго он там не пролежит, а форум не позволяет загрузить zip размером 7,4 мб )
-
Здравствуйте. Кто-нибудь использует схему instagram api? Dev instagram Хотя я и сделал эксперименты, результат, к сожалению, не очень хороший. function getCode: string; begin FRequest.Method := TRESTRequestMethod.rmGET; FRequest.Resource := '/oauth/authorize/'; FRequest.AddParameter('client_id', client_id, TRESTRequestParameterKind.pkGETorPOST); FRequest.AddParameter('redirect_uri', URIEncode(redirect_uri), TRESTRequestParameterKind.pkGETorPOST); FRequest.AddParameter('response_type', 'code', TRESTRequestParameterKind.pkGETorPOST); FRequest.Execute; FRequest.Response.GetSimpleValue('code', Result); end; Проблема заключается в перенаправленном URL-адресе. http://your-redirect-uri?code=CODE
-
Привет. Я сделал новую версию YouTubeApi компоненты. Поддерживаемые VCL & FMX + Mobile. Никаких официальных YouTube Api компоненты. Только данные с парсинг. Пример доступен в архиве. Новый === v1.4 - 25/02/2018 + Устранение проблем YouTubeApiDelphi
-
Я реализовал пример работы с микрофоном и таймером в Android сервисе, как указано в теме вопроса. Каждый раз, когда вы отправляете в сервис StartCommand или сервис перезапускается, включается запись с микрофона, и сохраняется в каталог с музыков в файл "myrecord.3gp". Надеюсь, мой пример поможет вам создать новые полезные решения. В этом случае пожалуйста делитесь ими с участниками нашего сообщества. Для отладки своих программ на Android используйте запись в LOGI и чтение при помощи monitor.bat (PlatformSDKs\android-sdk-windows\tools). uses ... AndroidApi.JNI.Media, // JMediaRecorder AndroidApi.Timer, // Timer ...; Const TimerInterval = 1000; TimerCounterSecLimit = 10; type TDM = class(TAndroidService) ... private FTimerHandle: Integer; FRecording: Boolean; procedure StartRecord; procedure StopRecord; procedure StartTimer; procedure StopTimer; public FAudioRec: JMediaRecorder; end; procedure Log(const Fmt: string; const Params: array of const); overload; var Msg: string; M: TMarshaller; begin Msg := Format(Fmt, Params); LOGI(M.AsUtf8(Msg).ToPointer); end; procedure Log(const Source: string); overload; var M: TMarshaller; begin LOGI(M.AsUtf8(Source).ToPointer); end; procedure TDM.AndroidServiceCreate(Sender: TObject); begin FTimerHandle := 0; FTimerCounter := 0; FRecording := false; end; procedure TDM.AndroidServiceDestroy(Sender: TObject); begin StopTimer; StopRecord; end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin if Intent.getAction.equalsIgnoreCase(StringToJString('StopIntent')) then begin StopTimer; StopRecord; Result := TJService.JavaClass.START_NOT_STICKY; // don't reload service Log('- service stoped', []); end else begin if not FRecording then begin Log('... sound record to be started', []); StartRecord; StartTimer; end; Result := TJService.JavaClass.START_STICKY; // rerun service if it stops Log('+ Service started', []); end; end; procedure TDM.StartRecord; begin StopRecord; FAudioRec := TJMediaRecorder.Create; FAudioRec.setAudioSource(TJMediaRecorder_AudioSource.JavaClass.MIC); FAudioRec.setOutputFormat(TJMediaRecorder_OutputFormat.JavaClass.THREE_GPP); FAudioRec.setAudioEncoder(TJMediaRecorder_AudioEncoder.JavaClass.AMR_NB); FAudioRec.setOutputFile(StringToJString(TPath.Combine(TPath.GetSharedMusicPath, 'myrecord.3gp'))); try FAudioRec.Prepare(); FAudioRec.start; FRecording := True; Log('+ Start record to %s', [TPath.Combine(TPath.GetSharedMusicPath, 'myrecord.3gp')]); except on E: Exception do Log('- Error in mic recording: %s', [E.Message]); end; end; procedure TDM.StopRecord; begin if Assigned(FAudioRec) then begin if FRecording then begin FRecording := false; try FAudioRec.stop(); FAudioRec.release(); Log('- Mic recording is stoped'); except on E: Exception do Log('- Error in mic stop recording: %s', [E.Message]); end; end; end else begin FRecording := false; end; end; procedure TDM.WaitComplete(TimerId: Integer); begin if FTimerCounter < TimerCounterSecLimit then begin Log('+++ Timer is triggered %d time.', [FTimerCounter]); inc(FTimerCounter); end else StopTimer; end; procedure TDM.StartTimer; begin FTimerCounter := 0; if FTimerHandle = 0 then begin FTimerHandle := AndroidTimerCreate; AndroidTimerSetInterval(FTimerHandle, TimerInterval); end; AndroidTimerSetHandler(WaitComplete); Log('+ Timer started', []); end; procedure TDM.StopTimer; begin if FTimerHandle > 0 then begin Log('... MIC recording to be stopped'); StopRecord; AndroidTimerSetHandler(nil); Log('- Timer stoped', []); end; end; end.
-
Доброго времени суток! Навеяно этой темой. Посмотрел реализацию от @Pax Beach (за что ему спасибо большое) и столкнулся с тем что TRESTClient со всеми потрахами это просто дикий ужас. Решил собрать аналогичный пример, только не использовать TREST*** немного опишу, свою реализацию uAppSettings.pas - хранит описание вашего приложения созданного в ВК FMX.RESTLight.pas - модуль "общения" клиента с сервером FMX.RESTLight.Types.pas - тут хранятся типы для работы TRESTLight Приведу код, который постит Вам на стену текст var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 5); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('friends_only', '0', false); aFields[4] := TmyRestParam.Create('message', 'Тестовое сообщение <RESTLight>', false); TTask.Run( procedure begin aJSON := TRESTLight.Execute('wall.post', FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- wall.post ----'); Memo1.Lines.Add(aJSON); end); end); а вот так можно заливать файлы var aFields: TArray<TmyRestParam>; aJSON: string; begin SetLength(aFields, 4); aFields[0] := TmyRestParam.Create('access_token', FAuthToken.token, false); aFields[1] := TmyRestParam.Create('v', FVKApp.APIVersion, false); aFields[2] := TmyRestParam.Create('owner_id', FAuthToken.user_id, false); aFields[3] := TmyRestParam.Create('photo', aUploadFile, true); // для файлов указывается !!!true!!! TTask.Run( procedure begin // для загрузки файлов использовать TRESTLight.Execute2, в нем можно указать произвольный URL aJSON := TRESTLight.Execute2(aUploadURL, FVKApp, aFields); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('---- upload file to server ----'); Memo1.Lines.Add(aJSON); end); end); P.S. На правильность и оригинальность не претендую, просто альтернативный вариант. Мне например не понравилась как устроен TRESTClient, много компонентов лишних. В боевых условиях наверное код еще будет модернизироваться, я рассмотрел только пару методов, но думаю общая концепция не сильно поменяется GitHub TRESTLight.zip
-
Добрый день. Как использовать API WindowsRT для шифрования? (https://msdn.microsoft.com/en-us/library/windows/apps/windows.security.cryptography.core.aspx) Конкретно - интересует RSA, генерация пары ключей, импорт/экспорт в файл, шифрование и дешифрование строки. Для начала я пытаюсь просто получить названия алгоритмов шифрования, чтоб потом их использовать. Даже не возвращаю их пока из функции, просто получаю: uses System.Threading, System.Types, System.Win.ComObj, Winapi.Security.Cryptography, Winapi.Foundation, Winapi.Foundation.Collections, Winapi.Storage.Streams, Winapi.CommonTypes, Winapi.Foundation.Types, Winapi.Winrt, System.Win.Winrt; procedure TForm1.Button1Click(Sender: TObject); var AsymmetricAlgoNames: Core_IAsymmetricAlgorithmNamesStatics; AsymmetricAlgoNamesInsp: IInspectable; GetAlgoNames: IFuture<boolean>; begin GetAlgoNames := TTask.Future<boolean>( function: boolean begin OleCheck(RoInitialize(RO_INIT_MULTITHREADED)); try OleCheck(RoGetActivationFactory(TWindowsString(SCore_AsymmetricAlgorithmNames), Core_IAsymmetricAlgorithmNamesStatics, AsymmetricAlgoNamesInsp)); AsymmetricAlgoNames := AsymmetricAlgoNamesInsp as Core_IAsymmetricAlgorithmNamesStatics; finally RoUninitialize; end; Result := true; end); GetAlgoNames.Start; end; После нажатия на кнопку: И сразу: Но иногда (рандомно) вместо первого исключения получаю: IFuture использую потому что если это делать в потоке гуя, при вызове RoInitialize ругается, что поток уже запущен и нельзя изменить его состояние. Delphi 10 Seattle, Windows 10 x64.
- 10 ответов
-
- WindowsRT
- криптография
-
(и ещё 3 )
C тегом:
-
Вопрос следующий: Существует ли CMS, заточенная конкретно под Firemonkey? Цель следующая: удалённый сервер-соц сеть, под неё делается приложение на Firemonkey для обмена сообщениями, картинками и прочим. Стоит ли использовать уже готовые CMS, или же придётся работать над своей? Сам долгое время работал с joomla...