类说明
在移动开发过程中,常常要遇到调用移动设备的需求,如调用摄像头、通信录、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
参数:
解释:停止陀螺仪