The Android port handles the NativeActivity interface internally and wraps everything up nicely so that you can only have a main() in your code.
All the NativeActivity stuff is stored internally, but in some cases users might want access to those to make JNI calls. Maybe to use Google Play or Google Play Games services. Or even just some custom libraries that exist on the Java side of things.
You can get access to all those things through one simple interface, but there are a few problems with that.
The biggest problem is that it is not part of the "public" API of SFML. Does SFML expose platform specific calls at all?
Second issue is that generally when those pointers are accessed, they main NativeActivity thread should be locked. So you can't just expose the pointers, because they are "owned" by the NativeActivity thread.
A general guide is to have a locking interface like this:
sf::ActivityStates* states = NativeActivityAttachToThread(); // Locks the mutex.
// ...make your JNI calls...
NativeActivityDetachFromThread();
Would there be an nice enough way to add this to SFML?