Unity获取安卓电量和时间

时间:2021-02-19 22:42:59
本文主要是解决了Unity获取安卓电量的问题,顺便也把获取时间代码完善了。
Unity想获取电量很多人是Unity跟安卓互发消息并且还要导入jar包,我在项目的时候老大发了一段神奇代码可以直接获取安卓手机电量,主要代码是GetBatteryLevel()。
下面我贴出了整个代码。
还有整个测试工程的Unity导出包unitypackage,测试apk。下载地址:http://download.csdn.net/detail/bill501y/9246719
</pre><pre name="code" class="csharp">using UnityEngine;using System.Collections;using System;public class BatteryAndTime : MonoBehaviour{    string _time = string.Empty;    string _battery = string.Empty;    void Start()    {        StartCoroutine("UpdataTime");        StartCoroutine("UpdataBattery");    }    void OnGUI()    {        GUILayout.Label(_time, GUILayout.Width(100), GUILayout.Height(100));        GUILayout.Label(_battery, GUILayout.Width(100), GUILayout.Height(100));    }    IEnumerator UpdataTime()    {        DateTime now = DateTime.Now;        _time = string.Format("{0}:{1}", now.Hour, now.Minute);        yield return new WaitForSeconds(60f - now.Second);        while (true)        {            now = DateTime.Now;            _time = string.Format("{0}:{1}", now.Hour, now.Minute);            yield return new WaitForSeconds(60f);        }    }    IEnumerator UpdataBattery()    {        while (true)        {            _battery = GetBatteryLevel().ToString();            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;    }}