本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/8927734
cocos2d-x中并没有关于获取一些系统底层信息的方法。由于跨平台编译的原因,需要根据平台来自己写。
通常需要显示是网络连接状态和电池的电量这两个。
#import "Foundation/Foundation.h"
#import "UIKit/UIKit.h"
typedef enum
{
// Apple NetworkStatus Compatible Names.
NoNetWork = 0,
ConnWiFi = 2,
Conn3G = 1
} NetState;
// 获取电池电量,范围0到1.0。-1表示电量未知。
float getBatteryLeve();
// 检测WIFI是否可用
bool isWIFIEnabled();
// 检测3G网络是否可用
bool is3GEnabled();
//取得网络连接状况
NetState getNetState();
实现是用.mm来实现,就是调用一些ios现成的接口。
#include "SystemInfo.h"
#import "Reachability.h"
NSString* testPage = @"www.baidu.com";
float getBatteryLeve()
{
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
return [[UIDevice currentDevice] batteryLevel];
}
// 检测WIFI是否可用
bool isWIFIEnabled()
{
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}
// 检测3G网络是否可用
bool is3GEnabled()
{
return [[Reachability reachabilityForInternetConnection] isReachableViaWWAN];
}
NetState getNetState()
{
Reachability *r = [Reachability reachabilityWithHostname:testPage];
switch ([r currentReachabilityStatus]) {
case NotReachable:
// 没有网络连接
return NoNetWork;
break;
case ReachableViaWWAN:
// 使用3G网络
return Conn3G;
break;
case ReachableViaWiFi:
// 使用WiFi网络
return ConnWiFi;
break;
}
}
其中Reachability类是官方给提供的一个测试网络的类。使用时引入Reachability.h 和.m就可以,另外还要在Frameworks中加入SystemConfiguration.framework。一些使用可以百度,我下面的源码中也能找到相应的项目。
源码:http://download.csdn.net/detail/fansongy/5377491