🍣
UnityでAndroidのバッテリ残量を確認する方法
やりたいこと
Unityで作成したAndroidのアプリケーション上でスマホのバッテリ残量を確認したい。
動作確認環境
Windows 11 Home + Unity 2022.3.181f
OPPo Reno5 A + ColorOS V12
実装
private void checkBattery()
{
// battery managerの取得
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
AndroidJavaObject batteryManager = context.Call<AndroidJavaObject>("getSystemService", "batterymanager");
// battery levelの取得
int batteryLevel = batteryManager.Call<int>("getIntProperty", 4); // BatteryManager.BATTERY_PROPERTY_CAPACITY
// ログ表示methodの呼び出し
appendLog("Battery Level: " + batteryLevel + "%");
}
BatteryBanagerを取得し、BATTERY_PROPERTY_CAPACITYの値を取得している
BatteryManagerについては詳しくは以下参照
Discussion