This can have multiple reasons. First thing to look for is always whether a "user app" might have caused this. This can be done by booting into safe-mode: if everything works here, at least the hardware is fine, and the system as well. In that case, next steps would be:
- Boot into recovery-mode, and clear (wipe) cache. This is possible on rooted and unrooted devices, each recovery (stock or custom) should permit this (exceptions are quite rare). Then reboot, and see if the issue is solved.
- If it's not solved, and your device is equipped with a custom recovery: Again boot into recovery, this time wipe the "Dalvik Cache". Reboot, and check whether the issue is solved now.
If none of these two steps brought you any relief, you need to go the "hard way":
- Backup all your apps into single backups (so you can restore them separate), including
.apk and data. Useful tools for that:
adb backup (see: adb, backup) and Helium Backup, or on rooted devices also Titanium Backup.
- Uninstall apps in reverse order of their installation (the culprit it's more likely an app you've installed lately, than an app you've installed a year ago) one-by-one, and after each single uninstall see whether the problem solved. Doesn't hurt to reboot as well (i.e. uninstall→reboot→check, next).
- At the point where it starts working again, re-install all apps you've removed (again one-by-one), skipping the last one – as that was most likely causing the issue.
If the issue still persists (or still persisted in safe-mode), last resort is a factory-reset. Before doing that, make sure your contacts etc. are either synced with your Google account, or backed up otherwise (the apps you have already "secured" with above steps). Does the issue stay even after this, it's most likely a hardware issue, and you'll have to turn in your device for service.
If, on the other hand, the factory-reset made it working again, carefully restore from your backups – again one by one, with a reboot in between (to make sure you don't end up where you've started).