?
DeviceUtils.h ?
class="cpp" name="code">// // DeviceUtils.h // gamemoom // // Created by Song on 14-8-20. // // #ifndef __gamemoom__DeviceUtils__ #define __gamemoom__DeviceUtils__ #include <iostream> using namespace std; const char* getModel(); int getSdkVersion(); const char* getOsVersion(); const char* getPhoneNumber(); #endif /* defined(__gamemoom__DeviceUtils__) */
?
DeviceUtils.mm?
Ios端获取设备信息
?
//
// DeviceUtils.m
// gamemoom
//
// Created by Song on 14-8-20.
//
//
#import "DeviceUtils.h"
const char* getModel() {
NSString *strModel = [[UIDevice currentDevice] model];
return [strModel UTF8String];
}
int getSdkVersion() {
return 0;
}
const char* getOsVersion() {
NSString *strSysVersion = [[UIDevice currentDevice] systemVersion];
return [strSysVersion UTF8String];
}
const char* getPhoneNumber() {
return "";
}
?
DeviceUtils.cpp
Android端获取设备信息
//
// DeviceUtils.cpp
// gamemoom
//
// Created by Song on 14-8-20.
//
//
#include "DeviceUtils.h"
#include <platform/android/jni/JniHelper.h>
USING_NS_CC;
static const char* JAVA_CLASS_NAME = "com/easygo/games/utils/DeviceUtils";
extern "C"
{
static const char* jni_GetStaticMethod_string(const char* className, const char* methodName) {
std::string ret;
JniMethodInfo t;
if (JniHelper::getStaticMethodInfo(t, className, methodName, "()Ljava/lang/String;")) {
jstring retFromJava = (jstring)t.env->CallStaticObjectMethod(t.classID, t.methodID);
const char* str = t.env->GetStringUTFChars(retFromJava, 0);
ret = str;
t.env->ReleaseStringUTFChars(retFromJava, str);
t.env->DeleteLocalRef(t.classID);
}
return ret.c_str();
}
static int jni_GetStaticMethod_int(const char* className, const char* methodName) {
int ret = 0;
JniMethodInfo t;
if (JniHelper::getStaticMethodInfo(t, className, methodName, "()I")) {
ret = t.env->CallStaticIntMethod(t.classID, t.methodID);
t.env->DeleteLocalRef(t.classID);
}
return ret;
}
}
const char* getModel() {
return jni_GetStaticMethod_string(JAVA_CLASS_NAME, "getModel");
}
int getSdkVersion() {
return jni_GetStaticMethod_int(JAVA_CLASS_NAME, "getSdkVersion");
}
const char* getOsVersion() {
return jni_GetStaticMethod_string(JAVA_CLASS_NAME, "getOsVersion");
}
const char* getPhoneNumber() {
return jni_GetStaticMethod_string(JAVA_CLASS_NAME, "getPhoneNumber");
}
?
DeviceUtils.java
Android端的具体实现
package com.easygo.games.utils;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.telephony.TelephonyManager;
/**
* Device Utils
* Created by song on 14-8-20.
*/
public class DeviceUtils {
public static Context context;
public static String getModel() {
return Build.MODEL;
}
public static String getPhoneNumber() {
TelephonyManager phoneMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
return phoneMgr.getLine1Number();
}
public static int getSdkVersion() {
return Build.VERSION.SDK_INT;
}
public static String getOsVersion() {
return Build.VERSION.RELEASE;
}
public static String getPackageVersionName() {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
if (null != packageInfo) {
return packageInfo.versionName;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return "";
}
}
?Android获取本机号码,需要在AndroidManifest.xml中添加权限:
<uses-permission android:name=”android.permission.READ_PHONE_STATE” />
?
参考链接:
Android
Ios