My application asks for permission for ACCESS_FINE_LOCATION upon geolocation permission request fired from a webview, but it calls onRequestPermissionsResult without even showing dialog, with PERMISSION_DENIED for its response. I have read nearly all posts regarding this topic, but none of them seem to resolve my problem :(
in WebChromeClient:
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
int permissionCheck = ContextCompat.checkSelfPermission(onActivity, android.Manifest.permission.ACCESS_FINE_LOCATION);
if (permissionCheck == -1){
ActivityCompat.requestPermissions(onActivity, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, MainActivity.REQUEST_GEOLOCATION);
}else if (permissionCheck == 0){
callback.invoke(origin, true, false);
}
}
following are requested permissions from my manifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"
tools:ignore="ScopedStorage"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.Manifest.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.Manifest.permission.ACCESS_FINE_LOCATION" />
For sdk version, I have minSdkVersion 23, targetSdkVersion 29.