Otherwise it throws the following error on build:
"Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details."
To publish apps on Google Play everyone needs to target SDK 31+, which is Android 12+, so this is like a must now.
If "true", the activity is accessible to any app, and is launchable by its exact class name.
If "false", the activity can be launched only by components of the same application, applications with the same user ID, or privileged system components. This is the default value when there are no intent filters.
This is required by SDL_mfijoystick.m as long as `ENABLE_MFI_RUMBLE` is
defined. And guess what? That's the file that defines it. There's no way
to disable it except decreasing the max iOS version.
Seems like iOS 13 is the new minimum.
Problem one: it requires its own binary, which we haven't built. There
are instructions in sdl/src/hidapi/README.txt, if we ever want to try.
Problem two: the Android app segfaults when `hid_init()` calls
`g_JVM->AttachCurrentThread()`. This might be a bug in NDK 21's jni.h,
but that seems unlikely. Perhaps a version mismatch?
In any case, we aren't using the code at the moment, so the easy answer
is to leave it out.
On Android, `SDL_RWops` no longer stores a plain file descriptor,
so the `AAsset` API must be used instead:
https://developer.android.com/ndk/reference/group/asset
`HAVE_INOTIFY` is required on Linux at the moment, but the bug will be
fixed in the next SDL release.
-lib hxnodejs is no longer included in the compilation of ApplicationMain (but it is still included for compilation of ElectronSetup, of course). hxnodejs was removed from ApplicationMain because it forces some require() calls to be included in the generated .js, which would require disabling certain Electron security features to work properly in newer versions of Electron than we targeted previously. Electron's documentation recommends not to do that.
To use Node.js APIs, you need to run them in more secure contexts, while communicating over IPC with a "preload script" from the "renderer" process. In Lime/OpenFL, this would require a custom ElectronSetup template override, but that shouldn't be all that surprising. See: https://www.electronjs.org/docs/latest/tutorial/process-model for more details on the Electron side.