CADevice

2018-09-08 16:51 更新

類說明

在移動(dòng)開發(fā)過程中,常常要遇到調(diào)用移動(dòng)設(shè)備的需求,如調(diào)用攝像頭、通信錄、wifi列表、藍(lán)牙等等。CrossApp也為我們提供了調(diào)用Android和IOS平臺(tái)設(shè)備的統(tǒng)一接口,我們只需要在CrossApp寫統(tǒng)一的調(diào)用,然后在Android和IOS平臺(tái)設(shè)置相對(duì)的權(quán)限,這樣引擎會(huì)根據(jù)不同的平臺(tái)去調(diào)用相應(yīng)的執(zhí)行,達(dá)到一樣的效果。

CrossApp引擎中為我們提供設(shè)置調(diào)用的為CADevice,它在引擎的extensions\device目錄下。我們想要使用CADevice時(shí),需要引入:#include "CrossAppExt.h"并聲明命名空間:USING_NS_CC_EXT;


基類

CAObject


CADevice 方法(點(diǎn)擊查看方法介紹)

方法說明
getSystemVersionWithIOS獲取IOS系統(tǒng)版本
getAppVersion獲取app版本
openCamera打開相機(jī)
openAlbum打開相冊(cè)
getScreenBrightness獲取屏幕亮度
setScreenBrightness設(shè)置屏幕亮度
writeToSavedPhotosAlbum保存到相冊(cè)
getAddressBook獲取通信錄
updateVersion更新版本
getNetWorkType獲取網(wǎng)絡(luò)類型
getWifiListWithAndroid獲取WiFi列表
setVolume設(shè)置音量
getVolume獲取音量
OpenURL打開網(wǎng)址(調(diào)用瀏覽器打開網(wǎng)址)
getBatteryLevel獲取電池電量
isNetWorkAvailble查看是否連接到網(wǎng)絡(luò)
sendLocalNotification發(fā)送本地通知
getWifiConnectionInfo獲取WiFi連接信息
initBlueTooth初始化藍(lán)牙
setBlueToothType設(shè)置藍(lán)牙類型
startGyroscope開始陀螺儀
setGyroInterval陀螺間隔
stopGyroscope停止陀螺儀


通過上面的函數(shù)列表我們可以清楚的知道,CrossApp為我們提供的設(shè)備調(diào)用函數(shù),但我還有時(shí)還需要實(shí)現(xiàn)相應(yīng)的代理,才能獲得想要的信息,比如調(diào)用攝像機(jī)拍照后,我們想要獲得照片,那么我們必須要實(shí)現(xiàn)CAMediaDelegate代理,這我們才能獲得這張照片的問題。

我們這里查看一這些代理函數(shù):


攝像頭代理:

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);
     
    //標(biāo)簽
    CC_SYNTHESIZE_PASS_BY_REF(std::string, m_pBadgeValue, BadgeValue);
     
};


藍(lán)牙代理:

class CC_DLL CABlueToothDelegate
{
public:
    virtual ~CABlueToothDelegate(){};
     
    //藍(lán)牙狀態(tài)
    virtual void getBlueToothState(CABlueToothState state) {};
     
    //藍(lán)牙設(shè)備信息
    virtual void getSearchBlueToothDevice(CABlueToothUnit unit){};
     
    //開始查找藍(lán)牙設(shè)備
    virtual void startDiscoveryBlueToothDevice(){};
     
    //找到藍(lán)牙設(shè)備
    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* 

參數(shù):

解釋:獲取IOS系統(tǒng)版本


CC_DLL const char* getAppVersion();

返回值:const char*

參數(shù):

解釋:獲取app版本


CC_DLL void openCamera(CAMediaDelegate* target);

返回值:void

參數(shù):

類型參數(shù)名說明
CAMediaDelegate*target媒體代理

解釋:打開相機(jī)


CC_DLL void openAlbum(CAMediaDelegate* target);

返回值:void

參數(shù):

類型參數(shù)名說明
CAMediaDelegate* target媒體代理

解釋:打開相冊(cè)


CC_DLL float getScreenBrightness();

返回值:float

參數(shù):

解釋:獲取屏幕亮度


CC_DLL void setScreenBrightness(float brightness);

返回值:void

參數(shù):

類型參數(shù)名說明
floatbrightness屏幕亮度

解釋:設(shè)置屏幕亮度


CC_DLL void writeToSavedPhotosAlbum(const std::string &s);

返回值:void

參數(shù):

類型參數(shù)名說明
const std::string&s相冊(cè)

解釋:保存到相冊(cè)


CC_DLL std::vector<CAAddressBookRecord> getAddressBook();

返回值:std::vector<CAAddressBookRecord>

參數(shù):

解釋:獲取通信錄


CC_DLL void updateVersion(const std::string &url ,unsigned int versionNumber ,const std::string &appId);

返回值:void

參數(shù):

類型參數(shù)名說明
onst std::string&url網(wǎng)址
unsigned int versionNumber版本號(hào)
const std::string
&appIdAppID

解釋:更新版本


CC_DLL CANetWorkType getNetWorkType();

返回值:CANetWorkType

參數(shù):

解釋:獲取網(wǎng)絡(luò)類型


CC_DLL void getWifiListWithAndroid(CAWifiDelegate *target);

返回值:void

參數(shù):

類型參數(shù)名說明
CAWifiDelegatetargetWiFi代理

解釋:獲取WiFi列表(Android)


CC_DLL void setVolume(float sender, int type);

返回值:void

參數(shù):

類型參數(shù)名說明
floatsender音量
inttype類型

解釋:設(shè)置音量


CC_DLL float getVolume(int type);

返回值:float

參數(shù):

類型參數(shù)名說明
inttype類型

解釋:獲取音量


CC_DLL void OpenURL(const std::string &url);

返回值:void

參數(shù):

類型參數(shù)名說明
const std::string &url網(wǎng)址

解釋:打開網(wǎng)址(調(diào)用瀏覽器打開網(wǎng)址)


CC_DLL float getBatteryLevel();

返回值:float

參數(shù):

解釋:獲取電池電量


CC_DLL bool isNetWorkAvailble();

返回值:bool

參數(shù):

解釋:查看是否連接到網(wǎng)絡(luò)


CC_DLL void sendLocalNotification(const char* title, const char* content, unsigned long time);

返回值:void

參數(shù):

類型參數(shù)名說明
const char* title標(biāo)題
const char*content內(nèi)容
unsigned longtime時(shí)間

解釋:發(fā)送本地通知


CC_DLL CAWifiInfo getWifiConnectionInfo();

返回值:CAWifiInfo

參數(shù):

解釋:獲取WiFi連接信息


CC_DLL void initBlueTooth(CABlueToothDelegate *target);

返回值:void

參數(shù):

類型參數(shù)名說明
CABlueToothDelegate*target藍(lán)牙代理

解釋:初始化藍(lán)牙


CC_DLL void setBlueToothType(CABlueToothType type);

返回值:void

參數(shù):

類型參數(shù)名說明
CABlueToothTypetype藍(lán)牙類型

解釋:設(shè)置藍(lán)牙類型


typedef enum
{
    CABLUETOOTHOPEN = 0,            //開藍(lán)牙
    CABLUETOOTHCLOSE,               //關(guān)藍(lán)牙
    CABLUETOOTHDISCOVERY = 3 ,      //尋找藍(lán)牙
    CABLUETOOTHCANCELDISCOVERY      //取消尋找藍(lán)牙
     
}CABlueToothType;     //藍(lán)牙類型

CC_DLL void startGyroscope(CAGyroDelegate* delegate);

返回值:void

參數(shù):

類型參數(shù)名說明
CAGyroDelegate*delegate陀螺儀代理

解釋:開始陀螺儀


CC_DLL void setGyroInterval(float interval);

返回值:void

參數(shù):

類型參數(shù)名說明
floatinterval間隔

解釋:陀螺間隔


CC_DLL void stopGyroscope();

返回值:void

參數(shù):

解釋:停止陀螺儀

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)