-<p>In order to receive location updates from <code>NETWORK_PROVIDER</code> or
-<code>GPS_PROVIDER</code>, you must request user permission by declaring either the {@code
-ACCESS_COARSE_LOCATION} or {@code ACCESS_FINE_LOCATION} permission, respectively, in your Android
-manifest file. For example:</p>
+<p>
+ In order to receive location updates from {@link
+ android.location.LocationManager#NETWORK_PROVIDER} or {@link
+ android.location.LocationManager#GPS_PROVIDER}, you must request the user's
+ permission by declaring either the {@code ACCESS_COARSE_LOCATION} or {@code
+ ACCESS_FINE_LOCATION} permission, respectively, in your Android manifest file.
+ Without these permissions, your application will fail at runtime when
+ requesting location updates.
+</p>
+
+<p>
+ If you are using both {@link
+ android.location.LocationManager#NETWORK_PROVIDER} and {@link
+ android.location.LocationManager#GPS_PROVIDER}, then you need to request only
+ the {@code ACCESS_FINE_LOCATION} permission, because it includes permission
+ for both providers. (Permission for {@code ACCESS_COARSE_LOCATION} includes
+ permission only for {@link
+ android.location.LocationManager#NETWORK_PROVIDER}.)
+</p>
+
+<p class="note">
+ <strong>Note:</strong> If your app targets Android 5.0 (API level 21) or
+ higher, you must also declare that your app uses the
+ <code>android.hardware.location.network</code> or
+ <code>android.hardware.location.gps</code> hardware feature in the manifest
+ file, depending on whether your app receives location updates from {@link
+ android.location.LocationManager#NETWORK_PROVIDER} or from {@link
+ android.location.LocationManager#GPS_PROVIDER}. If your app receives location
+ information from both of these providers, you need to declare that the app
+ uses both <code>android.hardware.location.network</code> and
+ <code>android.hardware.location.gps</code>.
+</p>