@@ -131,7 +131,16 @@ function _requestLocationPermissions(always: boolean): Promise<void> {
131
131
} ) ;
132
132
} else {
133
133
ApplicationSettings . setBoolean ( 'askedForWhileUsePermission' , true ) ;
134
- permissions . requestPermission ( ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION ) . then ( resolve , reject ) ;
134
+ permissions . requestPermissions ( [ ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION , ( < any > android ) . Manifest . permission . ACCESS_COARSE_LOCATION ] )
135
+ . then ( ( value ) => {
136
+ resolve ( value ) ;
137
+ } ) . catch ( ( err ) => {
138
+ if ( ! err [ "android.permission.ACCESS_COARSE_LOCATION" ] && ! err [ "android.permission.ACCESS_FINE_LOCATION" ] ) {
139
+ reject ( err ) ;
140
+ } else if ( ! err [ "android.permission.ACCESS_FINE_LOCATION" ] && err [ "android.permission.ACCESS_COARSE_LOCATION" ] ) {
141
+ resolve ( ) ;
142
+ }
143
+ } )
135
144
}
136
145
}
137
146
} ) ;
@@ -174,7 +183,7 @@ export function watchLocation(successCallback: successCallbackType, errorCallbac
174
183
const zonedSuccessCallback = zonedCallback ( successCallback ) ;
175
184
const zonedErrorCallback = zonedCallback ( errorCallback ) ;
176
185
177
- if ( ( ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION ) || ! _isGooglePlayServicesAvailable ( ) ) && ! LocationManager . shouldSkipChecks ( ) ) {
186
+ if ( ( ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION ) && ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_COARSE_LOCATION ) || ! _isGooglePlayServicesAvailable ( ) ) && ! LocationManager . shouldSkipChecks ( ) ) {
178
187
throw new Error ( 'Cannot watch location. Call "enableLocationRequest" first' ) ;
179
188
}
180
189
@@ -332,7 +341,7 @@ function _permissionIsGiven(always: boolean): boolean {
332
341
333
342
export function isEnabled ( options ?: Options ) : Promise < boolean > {
334
343
return new Promise ( function ( resolve , reject ) {
335
- if ( ! _isGooglePlayServicesAvailable ( ) || ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION ) ) {
344
+ if ( ! _isGooglePlayServicesAvailable ( ) || ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_FINE_LOCATION ) && ! permissions . hasPermission ( ( < any > android ) . Manifest . permission . ACCESS_COARSE_LOCATION ) ) {
336
345
resolve ( false ) ;
337
346
} else {
338
347
_isLocationServiceEnabled ( options ) . then (
0 commit comments