Cocos2dx Android获取Mac地址

Cocos2dx Android获取Mac地址,第1张

概述转自:http://cocos2d.9tech.cn/news/2014/0327/40118.html 在cocos2dx开发中,我们想获得手机的Mac地址,而目前Android平台下只有java层代码能直接获取Mac地址,有朋友问如果在C++代码中要使用Mac地址该怎么办呢? 很简单,又是强大的JNI机制,思路就是先在java层获取Mac地址的字符串,然后传到C++层。 实现如下: 一、jav

转自:http://cocos2d.9tech.cn/news/2014/0327/40118.HTML


在cocos2dx开发中,我们想获得手机的Mac地址,而目前AndroID平台下只有java层代码能直接获取Mac地址,有朋友问如果在C++代码中要使用Mac地址该怎么办呢?

很简单,又是强大的JNI机制,思路就是先在java层获取Mac地址的字符串,然后传到C++层。

实现如下:

一、java层的东东:

public static String getMacID()  {      String str ="wei";                 WifiManager wifi = (WifiManager) mActivity.getSystemService(Context.WIFI_SERVICE);          WifiInfo info = wifi.getConnectionInfo();          str = info.getMacAddress();               if(str==null)        {            Log.e("获取androID mac地址失败","0000000");        }        Log.e("获取androID mac地址 "+str,"00000000");             return str;   }

代码很简单,就是返回Mac地址的字符串,我只注明一下mActivity,这是声明的一个静态Activity对象

private static Activity mActivity = null;

在create函数里赋值:mActivity = this;

还有一点别忘啦,权限问题:在AndroIDManifest.xml文件中添加wifi访问权限

<uses-permission androID:name="androID.permission.ACCESS_WIFI_STATE" />
二、再来说说C++层该干的事儿

std::string  FruitGameMenuScene:: getMacID()   {       std::string strMac=""; #if( CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID)          JniMethodInfo methodInfo; //用于获取函数体       bool isHave = JniHelper::getStaticmethodInfo(methodInfo,"com/ymook/FruitGame/FruitGame","getMacID","()Ljava/lang/String;");          if (isHave)       {           Jstring Jstr;           cclog("java层getMacID 函数存在;");           Jstr = (Jstring)methodInfo.env->CallStaticObjectMethod(methodInfo.classID,methodInfo.methodID);           strMac = JniHelper::Jstring2string(Jstr);           CcmessageBox("Mac",strMac.c_str());       }       else      {           cclog("java层getMacID 函数不存在;");       } #endif       return strMac;   }

这代码也简单,就是调用java层的getMacID函数,返回我们想要的Mac字符串。当然用JNI调用也可以先调用静态句柄再调用动态函数的方式,不过个人觉得那种方式较麻烦,就不例举了。我这里只注明一下:

"com/ymook/FruitGame/FruitGame"这个是我在AndroID平台下主Activity的路径;

总结

以上是内存溢出为你收集整理的Cocos2dx Android获取Mac地址全部内容,希望文章能够帮你解决Cocos2dx Android获取Mac地址所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1026117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存