I am trying to switch off android device through my program. It actually gets switched off but it restarts itself. I want the phone not to restart again by itself. How can I
I suppose you have found the answer,but this might help other users.
It's not possible to turn off your device. Here is an easy way to lock it :
You won't need any permissions, because some are only granted for system apps(like DEVICE_POWER and REBOOT). You also won't need to root your device.
This has been asked on StackOverflow in the past. The effective answer is that you would require the DEVICE_POWER
permission in order to shut the phone completely off, but the user would need a rooted phone to give your app permission to that control anyway.
Best you could hope for is PowerManager.goToSleep()