unity开发怎么获得剩余电量
2个回答
展开全部
最开始考虑使用中间静态链接库来调用手机系统自带的API,但是在研究的过程中发现Android系统将电量等信息记录在了固定的文件中,所以只需要在C#中直接读取就可以而不需要中间库.
a.Android版
1.通过C#直接读取,下面的GetBatteryLevel()方法
int GetBatteryLevel()
{
try
{
string CapacityString = System.IO.File.ReadAllText("/sys/class/power_supply/battery/capacity");
return int.Parse(CapacityString);
}
catch (Exception e)
{
Debug.Log("Failed to read battery power; " + e.Message);
}
return -1;
}
}
b.iOS版
iOS需要用到xcode编写.a静态链接库
1.在xcode编写.mm文件,实现C++调用iOS的API得到手机电量,部分代码如下:
float getiOSBatteryLevel()
{
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
return [[UIDevice currentDevice] batteryLevel];
}
2.将上面.mm编译好的.a文件放入Unity工程Assets-Plugins-iOS下(路径不能错);在C#中使用下面的方法调用:
[ DllImport( "__Internal" )]
private static extern float getiOSBatteryLevel();
在C#调用此函数就可获得iOS电量
a.Android版
1.通过C#直接读取,下面的GetBatteryLevel()方法
int GetBatteryLevel()
{
try
{
string CapacityString = System.IO.File.ReadAllText("/sys/class/power_supply/battery/capacity");
return int.Parse(CapacityString);
}
catch (Exception e)
{
Debug.Log("Failed to read battery power; " + e.Message);
}
return -1;
}
}
b.iOS版
iOS需要用到xcode编写.a静态链接库
1.在xcode编写.mm文件,实现C++调用iOS的API得到手机电量,部分代码如下:
float getiOSBatteryLevel()
{
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
return [[UIDevice currentDevice] batteryLevel];
}
2.将上面.mm编译好的.a文件放入Unity工程Assets-Plugins-iOS下(路径不能错);在C#中使用下面的方法调用:
[ DllImport( "__Internal" )]
private static extern float getiOSBatteryLevel();
在C#调用此函数就可获得iOS电量
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询