Android location permissions
The main permissions you need are android.permission.ACCESS_COARSE_LOCATION
or android.permission.ACCESS_FINE_LOCATION
.
Only fine location will allow you access to gps data, and allows you access to everything else coarse location gives. You can use the methods of the LocationManager to acquire location data from gps and cell tower sources already, you do not have to work out this information yourself.
If you are targeting API Level 21 (5.0) or higher, you may also need this:
<uses-feature android:name="android.hardware.location.gps" />
This permission should allow your app to use location services through the devices GPS, wifi, and cell towers. Just plop it in your manifest wherever you put your permissions, and it should do the trick. You can find all the other permissions here: (http://developer.android.com/reference/android/Manifest.permission.html)
Here is the code:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />