jsb调用java_cocos2d-js | JSB 调用Java函数 | Android设备ID

引擎版本:cocos2d-x-3.13

语言:cocos2d-js

几乎所有的游戏项目都有获取玩家设备ID的需求,这里记录一下使用cocos2d-js时的Android设备获取方式。

用JS获取Android设备,需要做两件事。

1、在Java层获取到Android的设备ID,并保存下来

2、在JS层拿到Java层保存下来的设备ID

第一件事:【获取Android设备ID】

首先要有权限:下面代码加入AndroidManifest.xml 中

找到项目目录下:frameworks\cocos2d-x\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxActivity.java

可以看到,Cocos2dxActivity 继承 Activity ,Activity是什么自行百度,反正可以简单看做是游戏的窗口。在其onCreate 下我们可以加入代码拿到Android设置信息

TelephonyManager 可以用于查询设备信息,具体内容也请自行百度。 这里 我们只要拿到 TelephonyManager 的实例就可以了TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

String DeviceId = tm.getDeviceId().toString();可以打印DeviceId,看一下结果,第一件事就算完成了Log.d(TAG,"Cocos2dxActivity TelephonyManager DeviceId:"+ DeviceId);第二件事:【javascript 与 Java 交互】

3.0之后的cocos2d-js提供了封闭好的代码,可以方便访问java函数层。

可以直接在main.js下,加入代码

if(cc.sys.os == cc.sys.OS_ANDROID){

var deviceID = jsb.reflection.callStaticMethod("org/cocos2dx/lib/Cocos2dxActivity","getDeviceID","()Ljava/lang/String;");

cc.log("--------- DeviceID ---------------",uuid);

}getDeviceID 是我加入到 Cocos2dxActivity里的代码。因为callStaticMethod只能访问静态函数。

所以我在Cocos2dxActivity内加入了一个静态变量DeviceID,在 tm.getDeviceId()拿到ID后,保存在DevicelD里,然后提供静态函数getDeviceID来拿到这个值

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值