Cum pot ascunde

Cum pot ascunde

Alamă puzzle aruncat, dar nu este simplu. Cererea trebuie să cuprindă în fundal pentru a monitoriza GPS, pentru a colecta date despre baterie, din exploatarea forestieră și apoi eliminate pe server. Toate acestea vor naschadno guzzle bateriei, înțeleg, dar autoritățile au nevoie de această opțiune. Revenind la problema:
1.Nuzhno tăiat servicii, dar pe baza trecutului - timer-ul nu funcționează alunecările nu este o opțiune, cum să facă acest lucru, în scopul de a se trezi serviciul la fiecare 5 minute / 15 minute / 1 oră.
GPS-ul 2.Monitoring, atunci o astfel de decizie a găsit în acest fir la seattle, cel mai bun mod de a colecta și stoca datele care urmează să fie trimise? (Înainte de toate păstrate în .txt simplu)
Face componentele Indy corect atunci când 3.Rabotayut? a declanșat except'y dacă și cum să monitorizeze conexiunea la rețea?
O altă problemă este aceea că programul ar trebui să lucreze mai mult sau mai puțin stabil, iar în cazul în care experiența de a scrie o aplicație simplă am este că, cu serviciile de câteva luni, nu pot face prieteni.
Toate castor!

Cum pot ascunde

pentru editarea textului în Anroide eu numesc tastatura virtuală ca un exemplu în InputQueryMethod
tastatura cu litere și caractere speciale. cum să numesc Claudia, fără caractere speciale. să aibă litere și cifre.

Problema de mult timp, vreau să se ocupe în cele din urmă cu ea.
Asta a creat un caz test în care aplicația TestPro și de servicii locale pentru Android-TestService2 el.
Rulați programul, faceți clic pe butonul Start Service, începe serviciu (a se vedea posibil Setări -> Aplicații -> lucrări).
Fără a închide programul, am rândul său, la alte programe și să lucreze în ele. Cel mai bine este de a merge în orice browser și trece prin filele (aplicație este destul de consumatoare de resurse).
După câteva minute, prin managerul de activități mă duc înapoi la aplicația și începe să fie încărcate de la zero. Acesta este sistemul de mult timp în urmă bătut în cuie programul și începe din nou descărcarea. Programul atârnă atât de mult timp pe ecranul de pornire, și apoi lăsați un mesaj că cererea nu răspunde! Faceți clic pe OK. După repornire repetată a programului are loc este același, și doar a treia oară programul începe.
Cum de a rezolva această problemă?

Am încercat să-l omoare serviciu
var LIntent: JIntent; LIntent: = TJIntent.Create; LIntent.setClassName (TAndroidHelper.Context.getPackageName (), TAndroidHelper.StringToJString ( 'com.embarcadero.services.TestService2')); TAndroidHelper.Activity.stopService (LIntent); la Application.Initialize linii - nu ajută.

Cum pot ascunde

Buna ziua! Problema a apărut din senin. Cea mai simpla aplicare edit1, realizate pe C ++ Builder 10.1 Berlin.
In emulatorul Android 5.0.1 totul funcționează fără probleme. Pe un HTC dispozitiv real, One E9 + (Android 5.0.2) cu tapas de pe Editare tastaturii virtuale nu apare și aplicația nu mai răspunde. Și C ++ Builder 10 Seattle nu apare această problemă. Acest lucru poate afecta aspectul tastaturii virtuale? Ar putea exista o problemă din cauza actualiza Android-Tools?

Am dat seama cum să lucreze cu un microfon și un cronometru pe serviciul Android, după cum se menționează în subiectul.
De fiecare dată când trimiteți în StartCommand de serviciu sau de serviciu este repornit, pornit de la un microfon, și este stocat în directorul cu muzica în fișierul „myrecord.3gp“.
Sper ca exemplul meu vă va ajuta să creați un nou și util soluții. În acest caz, vă rugăm să le împărtășiți cu membrii comunității noastre.
Pentru a depana programele pe Android utiliza intrarea în LOGI și citire folosind monitor.bat (PlatformSDKs \ android-sdk-windows \ unelte).

folosește. AndroidApi.JNI.Media, // JMediaRecorder AndroidApi.Timer, // Timer. ; Const TimerInterval = 1000; TimerCounterSecLimit = 10; tip TDM = clasă (TAndroidService). FTimerHandle privat: Integer; FRecording: Boolean; Procedura StartRecord; Procedura StopRecord; Procedura StartTimer; Procedura StopTimer; publice FAudioRec: JMediaRecorder; se încheie; Procedura Log (const FMT: string; const Params: array de const); suprasarcină; var Msg: string; M: TMarshaller; începe Msg: = Format (FMT, Params); LOGI (M.AsUtf8 (Msg) .ToPointer); se încheie; Procedura Log (Source const: string); suprasarcină; var M: TMarshaller; începe LOGI (M.AsUtf8 (Sursa) .ToPointer); se încheie; Procedura TDM.AndroidServiceCreate (Expeditor: TObject); începe FTimerHandle: = 0; FTimerCounter: = 0; FRecording: = false; se încheie; Procedura TDM.AndroidServiceDestroy (Expeditor: TObject); începe StopTimer; StopRecord; se încheie; Funcția TDM.AndroidServiceStartCommand (Expeditor const: TObject; Intent const: JIntent; Steaguri, StartId: Integer): Integer; începe dacă Intent.getAction.equalsIgnoreCase (StringToJString ( 'StopIntent')), apoi începe StopTimer; StopRecord; Rezultat: = TJService.JavaClass.START_NOT_STICKY; // nu reîncărcați serviciul Jurnal ( '- serviciu oprit', []); termina altfel începe dacă nu FRecording începe apoi Jurnal ( „sunet de înregistrare pentru a fi pornit.“, []); startRecord; startTimer; se încheie; Rezultat: = TJService.JavaClass.START_STICKY; // serviciu în cazul în care rulați din nou se oprește Log ( '+ Serviciu de început', []); se încheie; se încheie; Procedura TDM.StartRecord; începe 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'))); încercați FAudioRec.Prepare (); FAudioRec.start; FRecording: = true; Log ( '+ Start înregistrare la% s', [TPath.Combine (TPath.GetSharedMusicPath, 'myrecord.3gp')]); cu excepția E: Excepție face Log ( '- Eroare înregistrare microfon:% s', [E.Message]); se încheie; se încheie; Procedura TDM.StopRecord; începe dacă este atribuit (FAudioRec) apoi începe dacă FRecording începe apoi FRecording: = false; încercați FAudioRec.stop (); FAudioRec.release (); Jurnal ( '- înregistrare Mic este oprit'); cu excepția E: Excepție face Log ( '- Eroare în înregistrarea de oprire microfon:% s', [E.Message]); se încheie; se încheie; termina altceva începe FRecording: = false; se încheie; se încheie; Procedura TDM.WaitComplete (TimerId: Integer); începe dacă FTimerCounter 0 apoi începe Log ( 'MIC de înregistrare trebuie oprită.'); StopRecord; AndroidTimerSetHandler (zero); Log ( '- Cronometru oprit', []); se încheie; se încheie; end.

Încercarea de a se retrage din jurnalul de serviciu, monitor dar nimic nu vine.
De exemplu, aici este un proiect de testare
Verificați cum ai?
PS. Din aplicația jurnal sosește în mod normal,

Este posibil de a lucra cu o bază la un moment dat, și de program și de la serviciu?
PS. Android

Cum pot ascunde

De fapt, un subiect al titlului. Cum?
Am încercat să folosesc SQLite + FDConnection.
FDConnection.Params.Database: = TPath.Combine (System.IOUtils.TPath.GetDocumentsPath, 'basename.db'); Acesta funcționează în forma principală, dar se blochează în sus de serviciu.

TTimer neutru nu poate fi utilizat. Apropo de ce nu? De ce face apel la activitã în Androidapi.Helpers?
Embarcadero are un bug fix.

Cum să pună în aplicare un contor de timp, atunci când?

Acum, utilizatorii paginii 0

Nu există persoane se uită la această pagină