前段时间项目需要做一个获取手机电量信息的功能,我首先得想法是通过Android获取后传到unity里面这样来做,但是在无意间发现一篇文章,里面是直接在unity里面获取的,这样无疑简单了方便了很多,要是这样的方法有什么弊端的话,还请大家指出哦。话不多说,直接上代码:


using UnityEngine;
using System.Collections;
using System;


public class BatteryAndTime : MonoBehaviour
{
     string _time = string.Empty;
     string _battery = string.Empty;
     void Start()
     {
         StartCoroutine("UpdataBattery");
     }

     void OnGUI()
     {
         GUILayout.Label(_battery, GUILayout.Width(100), GUILayout.Height(100));
     }

     IEnumerator UpdataBattery()
     {
         while (true)
         {
             //此处的battery是一个百分比数字,比如电量是93%,则这个数字是93
             _battery = GetBatteryLevel().ToString();
             print("battery::::" + _battery);
             yield return new WaitForSeconds(300f);
         }
     }

     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;
     }
}
另外需要指出的是这里需要哦打包到手机上运行才有效果哦!!