您的位置:首页 > 移动开发 > Unity3D

unity3d 获取电量电池状态等 android and ios

2017-11-09 18:55 746 查看
获取电量

C#

public static int GetBatteryLevel()
{
int level = 0;
#if UNITY_ANDROID
try
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass unityPluginLoader = new AndroidJavaClass("java类全名");
level = unityPluginLoader.CallStatic<int>("GetBatteryLevel", currentActivity);
}
catch (System.Exception e)
{
}
#elif UNITY_IOS
level = (int)_IOS_GetBatteryLevel();
#endif
return level;
}


java

public static int GetBatteryLevel(Activity currentActivity) {
int level = 0;
try {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent intent = currentActivity.registerReceiver(null, ifilter);
level = intent.getIntExtra("level", 0);// 获得当前电量
// int scale = intent.getIntExtra("scale", 0);//获得总电量
// int status = intent.getIntExtra("status", 0);//电池充电状态
// int health = intent.getIntExtra("health", 0);//电池健康状况
// int batteryV = intent.getIntExtra("voltage", 0); //电池电压(mv)
// int temperature = intent.getIntExtra("temperature", 0);
// //电池温度(数值)

} catch (Exception e) {

}
}
return level;
}


ios

float _IOS_GetBatteryLevel()
{
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float level = [myDevice batteryLevel] * 100;
return level;
}


获取电池状态

C#

public static bool GetBatteryChargingState()
{
bool isCharging = false;
#if UNITY_ANDROID
try
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass unityPluginLoader = new AndroidJavaClass("java类全名");
isCharging = unityPluginLoader.CallStatic<bool>("GetBatteryChargingState", currentActivity);
}
catch (System.Exception e)
{
}
#elif UNITY_IOS
isCharging = (bool)_IOS_GetBatteryChargingState();
#endif
return isCharging;
}


java

public static boolean GetBatteryChargingState(Activity currentActivity) {
boolean isCharging = false;
try {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent intent = currentActivity.registerReceiver(null, ifilter);
int status = intent.getIntExtra("status", 0);// 电池充电状态
if (status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL) {
isCharging = true;
}
} catch (Exception e) {

}
}
return isCharging;
}


IOS

bool _IOS_GetBatteryChargingState()
{
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
bool isCharging = false;
UIDeviceBatteryState state = [myDevice batteryState];
if(state == UIDeviceBatteryStateCharging)
{
isCharging = true;
}
return isCharging;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d android ios