Skip to content

Commit b79af2b

Browse files
committed
Remove pointless dynamic use of ASensorManager.
This was only done so it could use ASensorManager_getInstanceForPackage on newer devices and ASensorManager_getInstance on older devices. We can just use ASensorManager_getInstance on all devices and spare the mess.
1 parent e06ad3e commit b79af2b

File tree

1 file changed

+1
-45
lines changed
  • native-activity/app/src/main/cpp

1 file changed

+1
-45
lines changed

native-activity/app/src/main/cpp/main.cpp

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -269,50 +269,6 @@ static void engine_handle_cmd(struct android_app* app, int32_t cmd) {
269269
}
270270
}
271271

272-
/*
273-
* AcquireASensorManagerInstance(void)
274-
* Workaround ASensorManager_getInstance() deprecation false alarm
275-
* for Android-N and before, when compiling with NDK-r15
276-
*/
277-
#include <dlfcn.h>
278-
ASensorManager* AcquireASensorManagerInstance(android_app* app) {
279-
if (!app) return nullptr;
280-
281-
typedef ASensorManager* (*PF_GETINSTANCEFORPACKAGE)(const char* name);
282-
void* androidHandle = dlopen("libandroid.so", RTLD_NOW);
283-
auto getInstanceForPackageFunc = (PF_GETINSTANCEFORPACKAGE)dlsym(
284-
androidHandle, "ASensorManager_getInstanceForPackage");
285-
if (getInstanceForPackageFunc) {
286-
JNIEnv* env = nullptr;
287-
app->activity->vm->AttachCurrentThread(&env, nullptr);
288-
289-
jclass android_content_Context = env->GetObjectClass(app->activity->clazz);
290-
jmethodID midGetPackageName = env->GetMethodID(
291-
android_content_Context, "getPackageName", "()Ljava/lang/String;");
292-
auto packageName =
293-
(jstring)env->CallObjectMethod(app->activity->clazz, midGetPackageName);
294-
295-
const char* nativePackageName =
296-
env->GetStringUTFChars(packageName, nullptr);
297-
ASensorManager* mgr = getInstanceForPackageFunc(nativePackageName);
298-
env->ReleaseStringUTFChars(packageName, nativePackageName);
299-
app->activity->vm->DetachCurrentThread();
300-
if (mgr) {
301-
dlclose(androidHandle);
302-
return mgr;
303-
}
304-
}
305-
306-
typedef ASensorManager* (*PF_GETINSTANCE)();
307-
auto getInstanceFunc =
308-
(PF_GETINSTANCE)dlsym(androidHandle, "ASensorManager_getInstance");
309-
// by all means at this point, ASensorManager_getInstance should be available
310-
assert(getInstanceFunc);
311-
dlclose(androidHandle);
312-
313-
return getInstanceFunc();
314-
}
315-
316272
/**
317273
* This is the main entry point of a native application that is using
318274
* android_native_app_glue. It runs in its own thread, with its own
@@ -328,7 +284,7 @@ void android_main(struct android_app* state) {
328284
engine.app = state;
329285

330286
// Prepare to monitor accelerometer
331-
engine.sensorManager = AcquireASensorManagerInstance(state);
287+
engine.sensorManager = ASensorManager_getInstance();
332288
engine.accelerometerSensor = ASensorManager_getDefaultSensor(
333289
engine.sensorManager, ASENSOR_TYPE_ACCELEROMETER);
334290
engine.sensorEventQueue = ASensorManager_createEventQueue(

0 commit comments

Comments
 (0)