327 lines
8.6 KiB
Plaintext
327 lines
8.6 KiB
Plaintext
#include<stdio.h>
|
||
#include <sys/types.h>
|
||
#include <sys/sysctl.h>
|
||
#include <sys/socket.h>
|
||
#include <sys/sysctl.h>
|
||
#include <sys/stat.h>
|
||
#include <net/if.h>
|
||
#include <net/if_dl.h>
|
||
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
|
||
#import <CoreTelephony/CTCarrier.h>
|
||
#import <mach/mach.h>
|
||
#import <mach/mach_host.h>
|
||
#import <sys/types.h>
|
||
#import <sys/param.h>
|
||
#import <sys/mount.h>
|
||
#import <mach/processor_info.h>
|
||
//#import "VPViewController.h"
|
||
#include <iostream.h>
|
||
#include <string>
|
||
|
||
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
|
||
|
||
} |