I do not want to launch with root, just as a common Android app, like other. I want to ask the user nicely and after that have the admin access and protection. Kaspersky is able to do it, so others should be able too.
What are the API calls here?
It is using the Device Administration APIs, you can read about it here: