For an industrial process application we need to have a server initiate a manufacturing activity which is stopped or completed with a command from the application on the Android device. When that occurs the app sends a message to the server with the time of completion.
For this it would be good if it was the "same time" on the Android device as on the server so the time that the device sends the server is correct from the server's standpoint. (a second or two of network latency won't matter)
And just a clarification - many of our company's customers are defense contractors or other security conscious firms so our device typically has no access to outside networks, so NITZ or NTP options may not be available. The "server" we're talking to is just an ordinary PC controlling some industrial machinery and talking with Android with WiFi via a local wireless-access-point.
Years ago (e.g., How to set time to device programmatically ) it was stated that a non-rooted could not programmatically set the system time. Is this still true in later Android versions (we're running 5.1)? Is there any way to set the time for just our app? Any other way to do what we want?