安卓開發

獲取安卓mac地址
public int testFun()
{
WifiManager wifiMgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);

WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());

if (null != info)
{
macAddress = info.getMacAddress();
}

return 0;
}

public static String testFunWithInt()
{
System.out.println("mac:" + macAddress);

return macAddress;
}


#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include <android/log.h>
#endif

調用靜態函數
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

JniMethodInfo minfo;

bool isHave1 = JniHelper::getStaticMethodInfo(minfo,"com/soulgame/card/Card", "testFunWithInt", "()Ljava/lang/String;");

if (!isHave1)
{
CCLog("jni:此函數不存在");
}
else
{

std::string macId;

macId=JniHelper::jstring2string(jstring(minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID)));

CCLog("macis is %s",macId.c_str());
}


#endif

調用非靜態函數

JniMethodInfo methodInfo;//定義Jni函數信息結構體

//getStaticMethodInfo 次函數返回一個bool值表示是否找到此函數
bool isHave = JniHelper::getStaticMethodInfo(methodInfo,
"com/soulgame/tcweibo/tcweibo",
"getActivity",
"()Ljava/lang/Object;");
jobject jobj;

if (isHave)
{
jobj = methodInfo.env->CallStaticObjectMethod(methodInfo.classID, methodInfo.methodID);
}

CCLog("正確獲取到 jobj");


isHave = JniHelper::getMethodInfo(methodInfo,
"com/soulgame/tcweibo/tcweibo",
"shardWeibo",
"()V");

if (isHave)
{
methodInfo.env->CallVoidMethod(jobj, methodInfo.methodID);
}


public static Activity actInstance;//定義單例

protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
actInstance=this;
}

public static Object getActivity()
{
return actInstance;
}



export ANDROID_SDK_ROOT=/Users/JaceLin/android/android-sdk-macosx-4/
export ANDROID_NDK_ROOT=/Users/JaceLin/android/android-ndk-r7$
export COCOS2DX_ROOT=/Users/JaceLin/android/cocos2d-2.0-x-2.0.3
export NDK_ROOT=/Users/JaceLin/android/android-ndk-r7
export A_NDK_ROOT=/Users/JaceLin/android/android-ndk-r7
export PATH=$PATH:/Users/JaceLin/android/android-ndk-r7
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT
export PATH=/Users/JaceLin/android/android-sdk-macosx-4/platform-tools:$PATH
export PATH=/Users/JaceLin/android/android-sdk-macosx-4/tools:$PATH


(1)ndk-stack 調試命令使用方法
1、在工程目錄下的jni文件夾下Application.mk中添加 APP_OPTIM := debug
2、在windows 下使用運行輸入 cmd 進入 android-ndk 目錄
3、運行命令 adb logcat | ndk-stack -sym d:\documents\project\inferno3\android\obj\local\armeabi\libgame_logic.so
或者adb logcat | ndk-stack -sym d:\documents\project\inferno3\android\obj\local\armeabi查看所有的*.so調試信息
查看文件ndk-native 調試信息

(2)使用模擬器運行Inferno 瘋狂城堡額外操作方法
1、使用cmd 進入android-sdk的plafrom-tools目錄
2、運行 emulator -partition-size 512 -avd your_avd_name





adb logcat | ndk-stack -sym /Users/JaceLin/android/cocos2d-2.0-x-2.0.3/sdk5/proj.android/obj/local/armeabi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章