DeviceUtils.h
// // 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” />
参考链接:
相关推荐
cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...
综上所述,从文件信息中可以提取到的知识点主要涉及Cocos2d-x游戏开发框架、使用JavaScript进行游戏开发、以及电子书的下载、阅读体验和版权问题。另外,还涉及到了电子书资源的获取服务以及对应的联系方式。需要...
【cocos2d-x源码素材】是一套用于学习cocos2d-x游戏开发的代码资源,它在Windows平台上使用Visual Studio 2010进行编译并通过了测试。这个资源包涵盖了多个重要的游戏开发技术,包括碰撞检测、瓦片地图(Tile Map)...
在《Cocos2d-x 3.x制作2048》这本书中,作者详细介绍了使用Cocos2d-x 3.0版本,通过C++语言开发2048游戏的全过程。2048是一款非常流行的数字拼接游戏,玩家需要通过滑动屏幕上下左右来移动数字卡片,相同数字的卡片...
`cocos2d-1.0.1-x-0.10.0` 版本可能包含了一些特定的bug修复和性能提升,但具体的更新日志需要查看当时的发行说明来获取详细信息。这个压缩包中的文件应该包含了源码、库文件、示例项目、文档等内容,帮助开发者搭建...
cocos2d-x拥有活跃的社区,开发者可以在论坛、GitHub等平台获取帮助,分享经验,查找或贡献代码示例。 总之,cocos2d-x教程涵盖了游戏开发的各个方面,从基础概念到高级技巧,通过学习和实践,开发者能够熟练掌握这...
你可以从Cocos2d-x官方网站获取最新稳定版的源码。解压后,将目录添加到PATH环境变量中,这样可以在命令行中直接调用Cocos2d-x的工具。 对于Eclipse的安装,虽然Cocos2d-x官方推荐使用Visual Studio,但有些开发者...
2. **下载Cocos2D-x3.10**:从官方站点获取Cocos2D-x的3.10版本,并解压到指定目录,例如D盘。 3. **安装Python**:Cocos2D-x最初基于Python开发,因此需要Python环境。推荐安装Python 2.7.3 64位版本。安装完成后...
cocos2d-x提供了内置的调试工具,如`log`函数进行日志输出,`ccLOG`方便在控制台查看调试信息。同时,可以使用`Director::getInstance()->getRunningScene()->getChildren()`遍历场景中的所有节点,进行检查和调试。...
cocos2d-x拥有庞大的开发者社区,提供了丰富的教程、示例代码、插件和第三方库,开发者可以通过社区获取帮助,解决问题。 总结起来,cocos2d-x是一款功能强大、易于学习和使用的2D游戏开发引擎,无论你是游戏开发...
由于Cocos2d-x支持多平台开发,学习使用Cocos2d-x和C++进行游戏开发,能够帮助开发者学习如何编写一次代码,然后将其部署到不同的设备和操作系统上。 7. 社区支持 作为流行的开源游戏框架,Cocos2d-x拥有一个活跃的...
Cocos2D-X 源码获取 首先,你需要从Cocos2D-X的官方网站(http://www.cocos2d-x.org/)下载最新的源码。确保选择适用于Windows平台的版本,以便后续的编译和开发工作。 ### 2. 安装必备软件 - **UltraISO PE 9.6...
《cocos2d-x改写《魔塔》案例 2.1.1 中期》是一个基于cocos2d-x 2.1.1版本的手机游戏开发项目,它旨在通过重制经典游戏《魔塔》来教授和展示cocos2d-x引擎的使用技巧。在这一中期阶段的代码中,开发者已经完成了游戏...
7. **社区与资源**:可能包含指向Cocos2d-x社区论坛、开发者博客和官方文档的链接,方便开发者寻求帮助和获取最新的开发资讯。 8. **问题解决**:列出常见问题及其解决方案,帮助开发者解决在使用Cocos2d-x过程中...
1. **下载cocos2d-x SDK**:首先,你需要从cocos2d官方网站获取最新版本的SDK,将其解压缩到你选择的任意位置。 2. **安装Python**:接着,访问Python官方网站,下载并安装Python SDK。安装完成后,记得在系统环境...
在cocos2d-x这个强大的2D游戏开发框架中,地图的缩放和拖动功能是构建可交互、可探索的游戏世界的关键元素。cocos2d-x提供了丰富的API和工具来实现这些动态效果,使得玩家可以自由地查看游戏场景的各个角落。下面将...
《cocos2d-x学习笔记》 在学习cocos2d-x时,了解其核心组件和工作流程至关重要。AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨...
《cocos2d-x与libluajit.a:解决设备崩溃问题》 在移动游戏开发领域,cocos2d-x是一个广泛使用的开源2D游戏引擎,它基于C++,并且支持Lua脚本语言,为开发者提供了高效且便捷的游戏制作工具。然而,在实际开发过程...
Cocos2d-x是一个开源的平面游戏开发框架,它基于另一个著名的游戏引擎Cocos2d-iPhone设计。Cocos2d-x继承了Cocos2d系列的核心优势,如易用性、高效性和灵活性。它不仅保留了这些特点,还具备强大的跨平台能力,能够...