首页 > 移动平台 > 详细

Unity获取Android和iOS手机系统电量及网络状况

时间:2016-01-10 12:54:45      阅读:893      评论:0      收藏:0      [点我收藏+]

  最开始考虑使用中间静态链接库来调用手机系统自带的API,但是在研究的过程中发现Android系统将电量等信息记录在了固定的文件中,所以只需要在C#中直接读取就可以而不需要中间库.

  a.Android版

  1.通过C#直接读取,下面的GetBatteryLevel()方法

  1.  int GetBatteryLevel()  
  2.     {  
  3.         try  
  4.         {  
  5.             string CapacityString = System.IO.File.ReadAllText("/sys/class/power_supply/battery/capacity");  
  6.             return int.Parse(CapacityString);  
  7.         }  
  8.         catch (Exception e)  
  9.         {  
  10.             Debug.Log("Failed to read battery power; " + e.Message);  
  11.         }  
  12.         return -1;  
  13.     }  
  14. }  

  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电量

  至于网络状况,Unity自带API就可以获得

  Application.interReachability 

NetworkReachability.NotReachability网络不可达
NetworkReachability.ReachableViaCarrierDataNetwork 通过运营商数据网络可达
NetworkReachability.ReachableViaLocalAreaNetwork 通过局域网络可达(wifi)

Unity获取Android和iOS手机系统电量及网络状况

原文:http://www.cnblogs.com/BobbyWeaver/p/5118118.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!