#include #include #include #include #include #include #include #include #import #import #import #import #import #import #import #import //#import "VPViewController.h" #include #include float get_battery_level() { [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]; float batteryLevel = [[UIDevice currentDevice] batteryLevel]; return batteryLevel; } /* extern "C" const char* get_model(); // 手机型号 extern "C" const char* get_imsi(); // imsi extern "C" const char* get_number(); // 手机号 extern "C" const char* get_simOperator(); // 运营商 extern "C" double get_maxRAM(); // 手机最大RAM extern "C" const char* get_cpuName(); // 手机CPU型号 extern "C" const char* get_cpuFrequency(); // 手机CPU频率 extern "C" int get_cpuCores(); // 手机CPU个数 */ extern "C" const char* get_model() // 手机型号 { char* buf = new char[64]; const char* model = [[UIDevice currentDevice].model UTF8String]; memcpy(buf, model, strlen(model)); return buf; } //warning, private framework, comment in platform AppStore #ifndef PLATFORM_APPSTORE //extern NSString * CTSIMSupportCopyMobileSubscriberIdentity(); #endif extern "C" const char* get_imsi() // imsi { char* buf = new char[64]; memset(buf, 0, 64); #ifndef PLATFORM_APPSTORE // maybe null NSString* data = nil;//CTSIMSupportCopyMobileSubscriberIdentity(); if (data) { const char* var = [data UTF8String]; memcpy(buf, var, strlen(var)); } #endif return buf; } //warning, private framework, comment in platform AppStore #ifndef PLATFORM_APPSTORE //extern NSString *CTSettingCopyMyPhoneNumber(); #endif extern "C" const char* get_number() // 手机号 { char* buf = new char[64]; memset(buf, 0, 64); #ifndef PLATFORM_APPSTORE // maybe null NSString* number = nil;//CTSettingCopyMyPhoneNumber(); if (number) { const char* var = [number UTF8String]; memcpy(buf, var, strlen(var)); } #endif return buf; } extern "C" const char* get_simOperator() // 运营商 { char* buf = new char[64]; memset(buf, 0, 64); // CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier *carrier = [info subscriberCellularProvider]; if (carrier != nil) { NSString *carrierName = [carrier carrierName]; if (carrierName != nil) { const char* var = [carrierName UTF8String]; memcpy(buf, var, strlen(var)); } } return buf; } extern "C" const char* get_cpuName() // 手机CPU型号 { char* buf = new char[64]; memset(buf, 0, 64); /* NSString* cpu = get_cpu_type(); const char* var = [cpu UTF8String]; memcpy(buf, var, strlen(var)); */ return buf; } extern "C" const char* get_cpuFrequency() // 手机CPU频率 { char* buf = new char[64]; memset(buf, 0, 64); int result; int mib[2]; mib[0] = CTL_HW; mib[1] = HW_CPU_FREQ; size_t length = sizeof(result); //int sysctl(int *, u_int, void *, size_t *, void *, size_t); if (sysctl(mib, 2, (void*)&result, &length, NULL, 0) < 0) { perror("getting cpu frequency"); } sprintf(buf, "%d", result); return buf; } extern "C" int get_cpuCores() // 手机CPU个数 { unsigned int ncpu; size_t len = sizeof(ncpu); sysctlbyname("hw.ncpu", &ncpu, &len, NULL, 0); return (int)ncpu; } // photo /* *等图片ok,回调 ProgramRoot的NotifyChoosedPhoto(string photoPaht) */ extern void startChooseImage(const char* fileName, float width, float height); std::string photoPath = ""; void chooseImageFinish(const char *fileName) { NSString* path = [NSString stringWithUTF8String:fileName]; NSRange range = [path rangeOfString:@"." options:NSBackwardsSearch]; if (range.length > 0) path = [path substringToIndex:range.location]; if ([path compare:[NSString stringWithUTF8String:photoPath.c_str()]] != NSOrderedSame) NSLog(@"diff path"); NSLog(@"Prepare image %@", path); UnitySendMessage("ProgramRoot", "NotifyChoosedPhoto", path.UTF8String); } extern "C" void get_photo(int width, int height, const char* saveFilePath) { // NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // NSString* doc = [paths objectAtIndex:0]; // NSString* path = [doc stringByAppendingPathComponent:@"photo"]; photoPath = saveFilePath; NSLog(@"path %s", saveFilePath); // startChooseImage(saveFilePath, width, height); } extern "C" void open_url(const char* url) { [[UIApplication sharedApplication]openURL:[NSURL URLWithString:[NSString stringWithUTF8String:url]]]; } // c interface extern "C" { // s talking data extern "C" void InitTalkingData( const char* appId, const char* partnerId ); extern "C" void tdgaSetAccount( const char* accountId ); extern "C" void tdgaSetAccountType(int accountType); extern "C" void tdgaSetGender( int gender); extern "C" void tdgaSetAge(int age); extern "C" void tdgaSetAccountName( const char* name ); extern "C" void tdgaSetLevel( int level ); extern "C" void tdgaSetGameServer( const char* gameServer ); extern "C" void tdgaOnPurchase( const char* item, int itemNumber, double priceInVirtualCurrency ); extern "C" void tdgaOnUse( const char* item, int itemNumber ); extern "C" void tdgaOnBegin( const char* missionId ); extern "C" void tdgaOnCompleted( const char* missionId ); extern "C" void tdgaOnFailed( const char* missionId, const char* cause ); extern "C" void tdgaOnEvent( const char* eventId, const char* jsonEventData ); extern "C" void tdgaOnReward( double virtualCurrencyAmount, const char* reason ); // sdk extern "C" void init_platform_sdk(); extern "C" void set_appversion(const char* ver); extern "C" void set_platform_id(int fgi); extern "C" void set_platform_type(const char* ptype); extern "C" void testin_Init (const char* appId, const char* channel); extern "C" void testin_SetUserInfo (const char* userInfo); extern "C" void testin_SetChannel (const char* channel); extern "C" void testin_ReportCustomizedException (int type, const char* reason, const char* stackTrace); void init_sdk(const char* appVer, const char* platformType, int fgi) { // set_appversion( appVer ); // set_platform_id( fgi ); // set_platform_type( platformType ); // // init_platform_sdk(); } /* void testinInit (const char* appId, const char* channel) { testin_Init(appId, channel); } void testinSetUserInfo (const char* userInfo) { testin_SetUserInfo(userInfo); } */ void testinSetChannel (const char* channel) { //testin_SetChannel(channel); } /* void testinReportCustomizedException (int type, const char* reason, const char* stackTrace) { testin_ReportCustomizedException(type, reason, stackTrace); } */ float get_battery_remain() { return get_battery_level(); } // s talking data void c_InitTalkingData( const char* appId, const char* partnerId ) { InitTalkingData(appId, partnerId); } void c_tdgaSetAccount( const char* accountId ) { tdgaSetAccount(accountId); } void c_tdgaSetAccountType(int accountType) { tdgaSetAccountType(accountType); } void c_tdgaSetGender( int gender) { tdgaSetGender(gender); } void c_tdgaSetAge(int age) { tdgaSetAge(age); } void c_tdgaSetAccountName( const char* name ) { tdgaSetAccountName(name); } void c_tdgaSetLevel( int level ) { tdgaSetLevel(level); } void c_tdgaSetGameServer( const char* gameServer ) { tdgaSetGameServer(gameServer); } void c_tdgaOnPurchase( const char* item, int itemNumber, double priceInVirtualCurrency ) { tdgaOnPurchase(item, itemNumber, priceInVirtualCurrency); } void c_tdgaOnUse( const char* item, int itemNumber ) { tdgaOnUse(item, itemNumber); } void c_tdgaOnBegin( const char* missionId ) { tdgaOnBegin(missionId); } void c_tdgaOnCompleted( const char* missionId ) { tdgaOnCompleted(missionId); } void c_tdgaOnFailed( const char* missionId, const char* cause ) { tdgaOnFailed(missionId, cause); } void c_tdgaOnEvent( const char* eventId, const char* jsonEventData ) { tdgaOnEvent(eventId, jsonEventData); } void c_tdgaOnReward( double virtualCurrencyAmount, const char* reason ) { tdgaOnReward(virtualCurrencyAmount, reason); } //st }