2014-06-12 3 views
4

를 얻을 :Firemonkey 안드로이드 내가 기능을 가지고 배터리 잔량

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; 

하지만 aContext PARAM로 무엇을 전달해야?

나는

+0

MainActivity 전역 변수 (FMX.Platform.Android) – SimaWB

답변

2

당신은 내 블로그에이 기사를 읽을 수 있습니다 ... 배터리 수명 매 분마다 얻을 메모로 저장해야합니다; "Battery Information (Android - XE5)". 원본 기사는 스페인어이지만 자동 번역 (페이지 오른쪽)을 시도 할 수 있습니다.

코드를 읽고 샘플 프로젝트 (소스 포함)를 다운로드 할 수 있습니다.

내가 사용하는 코드는 다음과 유사합니다

// 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

감사합니다.

+0

XE6에서 'SharedActivityContext'가 정의되지 않았습니다. –

+0

대신 TAndroidHelper.Context를 사용하십시오. –

+1

은 Delphi 10.2에서 유용합니다. – Someone