ПредишенСледващото

Как да получите текущата позиция на пръста на жестове на екрана - пожар маймуната от А до Я

Блъскат месинг пъзел, но не и проста. мъстта за кандидатстване във фонов режим за наблюдение на GPS, за да събира данни за батерията, от сеч и след това се изхвърлят на сървъра. Всичко това ще naschadno тъпкане батерия, аз разбирам, но властите се нуждаят от тази опция. Що се отнася до въпроса:
1.Nuzhno ограничи предлагането на услуги, но въз основа на миналото - таймерът не работи фишове не е опция, как да се направи това, за да се събуди на услугата на всеки 5 минути / 15 минути / 1 час.
GPS 2.Monitoring, след такова решение е намерил в тази тема в Сиатъл, най-добрият начин за събиране и съхранение на данните да бъдат изпратени? (Преди всичко се съхраняват в обикновен .txt)
Смятате Indy компоненти правилно, когато 3.Rabotayut? задейства except'y дали и как да се следи връзката с мрежата?
Друг проблем е, че програмата трябва да работи повече или по-малко стабилни, и ако опитът на написването на просто приложение, което имам е, че с услугите за няколко месеца, не мога да се сприятеляват.
Всички бобър!

Проблемът с дълга, искам най-накрая да се справят с него.
Това се създаде тест, в който приложението TestPro и местно обслужване на Android-TestService2 него.
Стартирайте програмата, щракнете върху бутона Start Service, започва стаж (виж възможни в Настройки -> Приложения -> работи).
Без затваряне на програмата, аз се обръщам към другите програми и да работи в тях. Най-добре е да отида в нито един браузър и ще разделите, (това е доста приложение изисква много ресурси).
След няколко минути чрез диспечера на задачите се върна в приложението си и да започне да се зареди от нулата. Това е системата отдавна прикован на програмата и тя започва да го изтеглите отново. Стига програма виси на началния екран, и след това оставете съобщение, че заявлението не отговаря! Щракнете върху OK. След многократно рестартиране на програмата се извършва, е същият, а само трети път стартира програмата.
Как да се реши този проблем?

Опитах се да убие услуга
Var LIntent: JIntent; LIntent: = TJIntent.Create; LIntent.setClassName (TAndroidHelper.Context.getPackageName (), TAndroidHelper.StringToJString ( "com.embarcadero.services.TestService2")); TAndroidHelper.Activity.stopService (LIntent); да Application.Initialize линии - не помага.

Разбрах как се работи с микрофон и таймер на услугата Android, както е посочено в предмета.
Всеки път, когато изпрати в експлоатация StartCommand или услуга се рестартира, преминали от микрофон, и се съхранява в директорията с музиката в "myrecord.3gp" файл.
Надявам се, че моят пример ще ви помогне да създадете нови и полезни решения. В този случай, моля да ги споделите с членовете на нашата общност.
За коригиране на грешки в програмите на Android използват влизането в LOGI и четене с помощта monitor.bat (PlatformSDKs \ Android-SDK-Windows \ инструменти).

използва. AndroidApi.JNI.Media, // JMediaRecorder AndroidApi.Timer, // таймер. ; Строителство TimerInterval = 1000; TimerCounterSecLimit = 10; тип TDM = клас (TAndroidService). частен FTimerHandle: Integer; FRecording: Булева; процедура StartRecord; процедура StopRecord; процедура StartTimer; процедура StopTimer; обществен FAudioRec: JMediaRecorder; приключи; Вход процедура (конст FMT: низ; конст Params: масив от конст); претоварване; Var Msg: низ; М: TMarshaller; започне Msg: = Формат (FMT, Params); LOGI (M.AsUtf8 (Msg) .ToPointer); приключи; процедура Вход (Конст Източник: низ); претоварване; Var М: TMarshaller; започнем LOGI (M.AsUtf8 (Източник) .ToPointer); приключи; процедура TDM.AndroidServiceCreate (Sender: TObject); започне FTimerHandle: = 0; FTimerCounter: = 0; FRecording: = фалшива; приключи; процедура TDM.AndroidServiceDestroy (Sender: TObject); започнем StopTimer; StopRecord; приключи; функция TDM.AndroidServiceStartCommand (конст подателя: TObject; конст намерение: JIntent; Flags, StartId: цяло число): цяло число; започнем ако Intent.getAction.equalsIgnoreCase (StringToJString ( "StopIntent")) след това да започне StopTimer; StopRecord; Резултат: = TJService.JavaClass.START_NOT_STICKY; // не презареди услуга Вход ( "- услуга спирам" []); сложи край на друг да започне, ако не FRecording след това да започне Вход ( "звукозаписната да бъде стартиран.", []); startRecord; startTimer; приключи; Резултат: = TJService.JavaClass.START_STICKY; // разясняване услуга, ако спре да Вход ( "+ Service стъпки" []); приключи; приключи; процедура TDM.StartRecord; започнем 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"))); опитайте FAudioRec.Prepare (); FAudioRec.start; FRecording: = True; Вход ( "+ Начало на записа на% S '[TPath.Combine (TPath.GetSharedMusicPath" myrecord.3gp)]); с изключение на Е: Изключение направи Вход ( "- Грешка в микрофон запис:% S '[E.Message]); приключи; приключи; процедура TDM.StopRecord; започне ако целеви (FAudioRec) след това започва ако след FRecording започне FRecording: = фалшива; опитайте FAudioRec.stop (); FAudioRec.release (); Вход ( '- Mic запис се спирам'); с изключение на Е: Изключение направи Вход ( "- Грешка в микрофон запис стоп:% S '[E.Message]); приключи; приключи; сложи край на друг започне FRecording: = неверни; приключи; приключи; процедура TDM.WaitComplete (TimerId: цяло число); започнем ако FTimerCounter 0 след това започва Вход ( "MIC запис да бъде спряно. '); StopRecord; AndroidTimerSetHandler (нула); Вход ( '- таймер спирам "[]); приключи; приключи; край.

Опитвайки се да се оттегли от дневника услуга, монитор, но нищо не излиза.
Например, тук е тестов проект
Вижте как си?
PS. От прилагането на дневник обикновено пристига

Възможно ли е да се работи с една база в даден момент, и от програмата и от услугата?
PS. андроид

Как да получите текущата позиция на пръста на жестове на екрана - пожар маймуната от А до Я

Всъщност, предмет на заглавието. Как?
Аз се опитвам да се използва SQLite + FDConnection.
FDConnection.Params.Database: = TPath.Combine (System.IOUtils.TPath.GetDocumentsPath "basename.db '); Тя работи в основната форма, но затвори услуга.

Как да получите текущата позиция на пръста на жестове на екрана - пожар маймуната от А до Я

# 13; Не мога да персонализирате цвета TabItem заглавието текст. Да променя шрифта, размера и цвета. Но всичко си остава една и съща # 13 .;
# 13; # 13; # 13; # 13;

Неутрален TTimer не може да се използва. Между другото защо не? Защо това се обръща към Activiti в Androidapi.Helpers?
Embarcadero изчистени грешки.

Как да се прилагат таймер, когато?

Сега потребителите на страница 0

Не са хора, които търсят в тази страница

Подкрепете проекта - споделете линка, благодаря!