2014-06-12 66 views
4

我得到了一個功能:Firemonkey的Android得電池級

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

'SharedActivityContext'在XE6中未定義 –

+0

請改用TAndroidHelper.Context。 –

+1

適用於Delphi 10.2 – Someone