2014-06-12 2 views
4

Je suis une fonction:FireMonkey Android obtenir le niveau de la batterie

function BatteryPercent(const aContext: JContext): Integer; 
var 
    filter: JIntentFilter; 
    battery: JIntent; 
    level, scale: Integer; 
begin 
    filter := TJIntentFilter.Create; 
    filter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED); 

    battery := aContext.registerReceiver(NIL, filter); 
    level := battery.getIntExtra(StringToJString('level'), -1); 
    scale := battery.getIntExtra(StringToJString('scale'), -1); 

    result := (100 * level) div scale; 
end; 

Mais que dois-je passer pour aContext param?

J'ai besoin de la vie de la batterie à chaque minute et enregistrez-le mémo ...

+0

Utilisation de la variable globale MainActivity (FMX.Platform.Android) – SimaWB

Répondre

2

Vous pouvez lire cet article sur mon blog; "Battery Information (Android - XE5)". L'article original est en espagnol, mais vous pouvez essayer la traduction automatique (à droite de la page).

Vous pouvez lire le code et télécharger le projet exemple (avec les sources).

Le code que j'utilise est semblable à ceci:

// Contexto 
    myContext := SharedActivityContext; 

    // Creamos y Configuramos el Intent 
    filter := TJIntentFilter.Create; 
    // Asociamos la ACTION que queremos capturar 
    filter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED); 
    // lo registramos 
    intentBatt := myContext.registerReceiver(nil, filter); 

enter image description here

Cordialement.

+0

'SharedActivityContext' n'est pas défini dans XE6 –

+0

Utilisez plutôt TAndroidHelper.Context. –

+1

fonctionne très bien pour Delphi 10.2 – Someone

Questions connexes