类说明
在移动开发过程中,常常要遇到调用移动设备的需求,如调用摄像头、通信录、wifi列表、蓝牙等等。CrossApp也为我们提供了调用Android和IOS平台设备的统一接口,我们只需要在CrossApp写统一的调用,然后在Android和IOS平台设置相对的权限,这样引擎会根据不同的平台去调用相应的执行,达到一样的效果。
CrossApp引擎中为我们提供设置调用的为CADevice,它在引擎的extensions\device目录下。我们想要使用CADevice时,需要引入:#include "CrossAppExt.h"并声明命名空间:USING_NS_CC_EXT;
基类
CAObject
CADevice 方法(点击查看方法介绍)
方法 | 说明 |
getSystemVersionWithIOS | 获取IOS系统版本 |
getAppVersion | 获取app版本 |
openCamera | 打开相机 |
openAlbum | 打开相册 |
getScreenBrightness | 获取屏幕亮度 |
setScreenBrightness | 设置屏幕亮度 |
writeToSavedPhotosAlbum | 保存到相册 |
getAddressBook | 获取通信录 |
updateVersion | 更新版本 |
getNetWorkType | 获取网络类型 |
getWifiListWithAndroid | 获取WiFi列表 |
setVolume | 设置音量 |
getVolume | 获取音量 |
OpenURL | 打开网址(调用浏览器打开网址) |
getBatteryLevel | 获取电池电量 |
isNetWorkAvailble | 查看是否连接到网络 |
sendLocalNotification | 发送本地通知 |
getWifiConnectionInfo | 获取WiFi连接信息 |
initBlueTooth | 初始化蓝牙 |
setBlueToothType | 设置蓝牙类型 |
startGyroscope | 开始陀螺仪 |
setGyroInterval | 陀螺间隔 |
stopGyroscope | 停止陀螺仪 |
通过上面的函数列表我们可以清楚的知道,CrossApp为我们提供的设备调用函数,但我还有时还需要实现相应的代理,才能获得想要的信息,比如调用摄像机拍照后,我们想要获得照片,那么我们必须要实现CAMediaDelegate代理,这我们才能获得这张照片的问题。
我们这里查看一这些代理函数:
摄像头代理:
class CC_DLL CATabBarItem
: public CABarItem
{
public:
static CATabBarItem* create(const std::string& title, CAImage* image, CAImage* selectedImage = NULL);
public:
CATabBarItem();
virtual ~CATabBarItem();
bool init(const std::string& title, CAImage* image, CAImage* selectedImage = NULL);
//获得照片纹理
CC_SYNTHESIZE_RETAIN(CAImage*, m_pSelectedImage, SelectedImage);
//标签
CC_SYNTHESIZE_PASS_BY_REF(std::string, m_pBadgeValue, BadgeValue);
};
蓝牙代理:
class CC_DLL CABlueToothDelegate
{
public:
virtual ~CABlueToothDelegate(){};
//蓝牙状态
virtual void getBlueToothState(CABlueToothState state) {};
//蓝牙设备信息
virtual void getSearchBlueToothDevice(CABlueToothUnit unit){};
//开始查找蓝牙设备
virtual void startDiscoveryBlueToothDevice(){};
//找到蓝牙设备
virtual void finishedDiscoveryBlueToothDevice(){};
};
WIFI代理:
class CC_DLL CAWifiDelegate
{
public:
virtual ~CAWifiDelegate(){};
//wifi信息
virtual void getWifiListFunc(std::vector<CAWifiInfo> _wifiInfoList) = 0;
};
CADevice 方法介绍
CC_DLL const char* getSystemVersionWithIOS();
返回值:const char*
参数:
解释:获取IOS系统版本
CC_DLL const char* getAppVersion();
返回值:const char*
参数:
解释:获取app版本
CC_DLL void openCamera(CAMediaDelegate* target);
返回值:void
参数:
类型 | 参数名 | 说明 |
CAMediaDelegate* | target | 媒体代理 |
解释:打开相机
CC_DLL void openAlbum(CAMediaDelegate* target);
返回值:void
参数:
类型 | 参数名 | 说明 |
CAMediaDelegate* | target | 媒体代理 |
解释:打开相册
CC_DLL float getScreenBrightness();
返回值:float
参数:
解释:获取屏幕亮度
CC_DLL void setScreenBrightness(float brightness);
返回值:void
参数:
类型 | 参数名 | 说明 |
float | brightness | 屏幕亮度 |
解释:设置屏幕亮度
CC_DLL void writeToSavedPhotosAlbum(const std::string &s);
返回值:void
参数:
类型 | 参数名 | 说明 |
const std::string | &s | 相册 |
解释:保存到相册
CC_DLL std::vector<CAAddressBookRecord> getAddressBook();
返回值:std::vector<CAAddressBookRecord>
参数:
解释:获取通信录
CC_DLL void updateVersion(const std::string &url ,unsigned int versionNumber ,const std::string &appId);
返回值:void
参数:
类型 | 参数名 | 说明 |
onst std::string | &url | 网址 |
unsigned int | versionNumber | 版本号 |
const std::string | &appId | AppID |
解释:更新版本
CC_DLL CANetWorkType getNetWorkType();
返回值:CANetWorkType
参数:
解释:获取网络类型
CC_DLL void getWifiListWithAndroid(CAWifiDelegate *target);
返回值:void
参数:
类型 | 参数名 | 说明 |
CAWifiDelegate | target | WiFi代理 |
解释:获取WiFi列表(Android)
CC_DLL void setVolume(float sender, int type);
返回值:void
参数:
类型 | 参数名 | 说明 |
float | sender | 音量 |
int | type | 类型 |
解释:设置音量
CC_DLL float getVolume(int type);
返回值:float
参数:
类型 | 参数名 | 说明 |
int | type | 类型 |
解释:获取音量
CC_DLL void OpenURL(const std::string &url);
返回值:void
参数:
类型 | 参数名 | 说明 |
const std::string | &url | 网址 |
解释:打开网址(调用浏览器打开网址)
CC_DLL float getBatteryLevel();
返回值:float
参数:
解释:获取电池电量
CC_DLL bool isNetWorkAvailble();
返回值:bool
参数:
解释:查看是否连接到网络
CC_DLL void sendLocalNotification(const char* title, const char* content, unsigned long time);
返回值:void
参数:
类型 | 参数名 | 说明 |
const char* | title | 标题 |
const char* | content | 内容 |
unsigned long | time | 时间 |
解释:发送本地通知
CC_DLL CAWifiInfo getWifiConnectionInfo();
返回值:CAWifiInfo
参数:
解释:获取WiFi连接信息
CC_DLL void initBlueTooth(CABlueToothDelegate *target);
返回值:void
参数:
类型 | 参数名 | 说明 |
CABlueToothDelegate | *target | 蓝牙代理 |
解释:初始化蓝牙
CC_DLL void setBlueToothType(CABlueToothType type);
返回值:void
参数:
类型 | 参数名 | 说明 |
CABlueToothType | type | 蓝牙类型 |
解释:设置蓝牙类型
typedef enum
{
CABLUETOOTHOPEN = 0, //开蓝牙
CABLUETOOTHCLOSE, //关蓝牙
CABLUETOOTHDISCOVERY = 3 , //寻找蓝牙
CABLUETOOTHCANCELDISCOVERY //取消寻找蓝牙
}CABlueToothType; //蓝牙类型
CC_DLL void startGyroscope(CAGyroDelegate* delegate);
返回值:void
参数:
类型 | 参数名 | 说明 |
CAGyroDelegate* | delegate | 陀螺仪代理 |
解释:开始陀螺仪
CC_DLL void setGyroInterval(float interval);
返回值:void
参数:
类型 | 参数名 | 说明 |
float | interval | 间隔 |
解释:陀螺间隔
返回值:void
参数:
解释:停止陀螺仪