Nou, die kan je dan dus weergeven. 0 is geen/onbekend, 4 is fantastisch, de rest is gradaties er tussenin. Daarmee kan je dan zo'n plaatje maken zoals ook in je bovenbalk staat. Of gewoon de cijfers, wat je maar wil.
Nou, die kan je dan dus weergeven. 0 is geen/onbekend, 4 is fantastisch, de rest is gradaties er tussenin. Daarmee kan je dan zo'n plaatje maken zoals ook in je bovenbalk staat. Of gewoon de cijfers, wat je maar wil.
1+1=b
-
Last edited by MMSoft; 17-Apr-23 at 09:26.
Dit is dus ook niet altijd zo, nu had ik deze (met de waarde 0) en de telefoon werkte welelse if cname = 'android.telephony.CellInfoGsm' then
begin
//Deze wordt uitgevoerd als er geen Verbinding is (Telefoon moet dan opnieuw opgestart worden), het vreemde is dan je dan wel (soms) de waarde 4 krijgt
CellInfoGsm := TJCellInfoGsm.Wrap(Cell);
Result := CellInfoGsm.getCellSignalStrength.getLevel; // 0..4
end
[/code]
Deze code heb ik nu:
Code:function GetCellLevel(): Integer; //Het GSM Signaal sterkte var TelephonyManager: Androidapi.JNI.Telephony.JTelephonyManager; obj: JObject; Cells: JList; i: Integer; Cell: JCellInfo; CellInfoLte: JCellInfoLte; CellInfoGsm: JCellInfoGsm; CellInfoWcdma: JCellInfoWcdma; cname: String; begin Result := -1; // Geen Bereik obj := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); if obj <> nil then begin TelephonyManager := TJTelephonyManager.Wrap(obj); Cells := TelephonyManager.getAllCellInfo; // iter := Cells.iterator; i := 0; while (i < cells.size) do begin obj := Cells.get(i); Cell := TJCellInfo.Wrap(obj); if Cell.isRegistered then begin cname := JStringToString(Cell.getClass.getName); Tijdelijk_Str := cname; Form1.Label10.text := cname; if cname = 'android.telephony.CellInfoLte' then begin //Deze code lijkt goed te werken CellInfoLte := TJCellInfoLte.Wrap(Cell); Result := CellInfoLte.getCellSignalStrength.getLevel; // 0..4 end else if cname = 'android.telephony.CellInfoGsm' then begin //Deze code lijkt goed te werken CellInfoGsm := TJCellInfoGsm.Wrap(Cell); Result := CellInfoGsm.getCellSignalStrength.getLevel; // 0..4 end else if cname = 'android.telephony.CellInfoWcdma' then begin //Dit wordt uitgevoerd als er geen Sim kaartje in de Telefoon zit !! //Waar is dit voor (dit lijkt niets te doen) ? //Deze Code gebruik ik dan ook niet !!! //CellInfoWcdma := TJCellInfoWcdma.Wrap(Cell); //Result := CellInfoWcdma.getCellSignalStrength.getLevel; // 0..4 end; end; Inc(i); end; end; end;
Ik zal het zo maken:Nou, die kan je dan dus weergeven. 0 is geen/onbekend, 4 is fantastisch, de rest is gradaties er tussenin. Daarmee kan je dan zo'n plaatje maken zoals ook in je bovenbalk staat. Of gewoon de cijfers, wat je maar wil.
-1: Rood kruis (geen verbinding)
0: 4 grijze streepjes
1: 1 Rood Streepje
2: 2 Oranje streepjes
3: 3 Groene streepjes
4: 4 Groene streepje
Hierbij de plaatjes, mocht iemand die ook kunnen gebruiken:
Last edited by MMSoft; 17-Apr-23 at 09:28.
Het is een indicatie. Ik heb zelf te weinig ervaring met programmeren op android om te weten hoe precies het is, maar ik weet wel dat je telefoon allerlei sensors maar om de zoveel tijd checkt, om batterij te besparen. Het valt me ook weleens op dat het soms best even duurt voor een telefoon door heeft dat hij buiten bereik van wifi is en overschakelt op het mobiele netwerk.
Daarbij kunnen telefoons nog wel 112 bellen zonder simkaart. Ik weet eerlijk gezegd dus niet of de indicator daarvan afhankelijk is.
Succes met het inbouwen van de plaatjes!
1+1=b
There are currently 2 users browsing this thread. (0 members and 2 guests)
Bookmarks