Android JNI:如何找到';公共接口位置侦听器{}';由C
我想使用“RequestLocationUpdate”并设置侦听器回调。 我遇到了一个类似“找不到类”的错误。请给我一些提示。 这是我的密码:Android JNI:如何找到';公共接口位置侦听器{}';由C,android,java-native-interface,Android,Java Native Interface,我想使用“RequestLocationUpdate”并设置侦听器回调。 我遇到了一个类似“找不到类”的错误。请给我一些提示。 这是我的密码: jstring gpsProviderStr = (jstring)(*env)->GetStaticObjectField(env, clazz, providerid); //ERROR: jclass listenerClass = (*env)->FindClass(env,"android/location/
jstring gpsProviderStr = (jstring)(*env)->GetStaticObjectField(env, clazz, providerid);
//ERROR:
jclass listenerClass = (*env)->FindClass(env,"android/location/LocationListener"); //cannot find class
jmethodID mListener = (*env)->GetMethodID(env, listenerClass, "<init>", "()V");
jobject listenerObj = (*env)->NewObject(env, listenerClass, mListener);
jmethodID mReqLocUpdates = (*env)->GetMethodID(env, clazz, "requestLocationUpdates","(Ljava/lang/String;LFLandroid/location/LocationListener;)V");
//Callback? right?
(*env)->CallVoidMethod(env, locMgrObj, mReqLocUpdates, gpsProviderStr, interval, 0, listenerObj); //set callback
jstringgpsproviderstr=(jstring)(*env)->GetStaticObjectField(env,clazz,providerid);
//错误:
jclass listenerClass=(*env)->FindClass(env,“android/location/LocationListener”)//找不到类
jmethodID mListener=(*env)->GetMethodID(env,listenerClass,“,”()V”);
jobject listenerObj=(*env)->NewObject(env,listenerClass,mListener);
jmethodID mReqLocUpdates=(*env)->GetMethodID(env,clazz,“requestLocationUpdates”,“(Ljava/lang/String;LFLandroid/location/LocationListener;)V”);
//回拨?正确的?
(*env)->CallVoidMethod(env、locMgrObj、mReqLocUpdates、gpsProviderStr、interval、0、listenerObj)//设置回调
是一个接口,因此根据定义,它没有构造函数。只有实现此接口的类才具有可以调用的构造函数
您可以在自写Java类中实现该接口,然后创建该自写类的实例。
如果需要,可以将这些方法实现为native
。这将允许您在JNI中处理位置更新时的回调