Some background on the goal result:
Currently I'm on a team that is working to develop an Android app for use in a classroom. The app is designed to be used across at least 20 or so tablets at once, and to manage connections between all of these devices somehow. It will hold similar functionality as an attendance tool. For instance, the teacher will open their app to an empty list and the students, each with a device of their own, can indicate they are present by clicking a button. Upon each click, the student's name will appear on the teacher app's growing list.
This is the general idea of the app, with the added functionality of student devices able to pass data amongst themselves, as well as the teacher sending out data to them, in an N-to-M device format. As for devices, at the moment we are looking into Amazon Kindles, which can run Android.
We have tried using Google Nearby Connections API:
We have experimented with Google's Nearby Connections API, but have found this to connect inconsistently among three devices. Often, it shows a bluetooth error which seems likely due to inadequate support on the Kindle device for Google's API, for which there doesn't seem to be much documentation online (this is kind of a niche situation). Beyond this issue, I've read on here the Google Nearby API is only intended for use among 7 or so devices at most, due to general lack of bluetooth strength in devices that support it, from what I understand. If that's the case, this wouldn't work for a class of 20+ students.
What we are looking for:
We are hoping to determine the best approach to implementing the Android app of this nature. This is an unfamiliar realm for me, but it seems there are a variety of games out there that utilize functionality of this kind (Kahoot! comes to mind). We have hoped to avoid using standard WiFi as much as possible, since elementary school wireless networks tend to be laggy in the district for which we are developing this app, but if that is the best option then we will go for it. I'd appreciate any insight or advice on how best to approach this development, including API recommendations if you know of any.