-

类说明

在移动开发过程中,常常要遇到调用移动设备的需求,如调用摄像头、通信录、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

参数:

类型参数名说明
floatbrightness屏幕亮度

解释:设置屏幕亮度


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
&appIdAppID

解释:更新版本


CC_DLL CANetWorkType getNetWorkType();

返回值:CANetWorkType

参数:

解释:获取网络类型


CC_DLL void getWifiListWithAndroid(CAWifiDelegate *target);

返回值:void

参数:

类型参数名说明
CAWifiDelegatetargetWiFi代理

解释:获取WiFi列表(Android)


CC_DLL void setVolume(float sender, int type);

返回值:void

参数:

类型参数名说明
floatsender音量
inttype类型

解释:设置音量


CC_DLL float getVolume(int type);

返回值:float

参数:

类型参数名说明
inttype类型

解释:获取音量


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 longtime时间

解释:发送本地通知


CC_DLL CAWifiInfo getWifiConnectionInfo();

返回值:CAWifiInfo

参数:

解释:获取WiFi连接信息


CC_DLL void initBlueTooth(CABlueToothDelegate *target);

返回值:void

参数:

类型参数名说明
CABlueToothDelegate*target蓝牙代理

解释:初始化蓝牙


CC_DLL void setBlueToothType(CABlueToothType type);

返回值:void

参数:

类型参数名说明
CABlueToothTypetype蓝牙类型

解释:设置蓝牙类型


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

参数:

类型参数名说明
floatinterval间隔

解释:陀螺间隔


CC_DLL void stopGyroscope();

返回值:void

参数:

解释:停止陀螺仪