所以我正在用Cocos2Dx开发一个小项目,但我正在尝试添加蓝牙功能,这意味着调用非静态方法可以访问Main Activity与
Android API的关联.我见过的几乎所有内容都告诉我遵循这个程序:
– 创建主要活动的实例(environment-> NewGlobalRef是我正在使用的实例)
– 从活动中获取方法并执行它(environment-> GetObjectClass)
这是代码.在java中我们有以下内容(省略onCreate,onResume等逻辑内容):
public class TSP extends Cocos2dxActivity{
public void CnxAttempt(){
Log.e("TSP_BT","aTTEMPTING!");
}
}
而已!就目前而言,我只想显示一条Log消息,确认该函数已执行.现在,有趣的部分是在C:
static JNIEnv* getJNIEnv(void){
JNIEnv *env = 0;
// get jni environment
if (gJavaVM->GetEnv((void**)&env, JNI_VERSION_1_4) != JNI_OK){
CCLog("Failed to get the environment using GetEnv()");
}
if (gJavaVM->AttachCurrentThread(&env, 0) < 0){
CCLog("Failed to get the environment using Att