我想使用" requestLocationUpdates"并设置一个监听器回调。 我收到了一个错误,例如"找不到LocationListener类"。请给我一些提示。 这是我的代码:
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
答案 0 :(得分:1)
LocationListener是一个接口,因此根据定义它没有构造函数。只有实现此接口的类才有可以调用的构造函数。
您可以在自编写的Java类中实现此接口,然后创建此自编写类的实例。
如果您愿意,可以将方法实现为native
。这将允许您在JNI中处理位置更新的回调。