Update check permission

This commit is contained in:
wengki81 2025-06-15 03:17:12 +08:00
parent 17f6a4a64a
commit fe238ed8ae
2 changed files with 20 additions and 8 deletions

View File

@ -1,11 +1,13 @@
package com.dumon.plugin.geolocation
import android.Manifest
import android.content.pm.PackageManager
import android.graphics.Color
import android.os.Build
import android.view.View
import android.view.WindowInsetsController
import android.view.WindowManager
import androidx.core.app.ActivityCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.getcapacitor.*
@ -125,15 +127,21 @@ class DumonGeolocation : Plugin() {
@PluginMethod
fun checkAndRequestPermissions(call: PluginCall) {
if (PermissionUtils.hasLocationAndWifiPermissions(context)) {
val result = JSObject().apply {
put("location", "granted")
put("wifi", "granted")
}
call.resolve(result)
} else {
requestAllPermissions(call, "checkAndRequestPermissions")
val locationStatus = PermissionUtils.mapPermissionResult(
ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION)
)
val wifiStatus = PermissionUtils.mapPermissionResult(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
ActivityCompat.checkSelfPermission(context, Manifest.permission.NEARBY_WIFI_DEVICES)
else
PackageManager.PERMISSION_GRANTED
)
val result = JSObject().apply {
put("location", locationStatus)
put("wifi", wifiStatus)
}
call.resolve(result)
}
@PluginMethod

View File

@ -20,4 +20,8 @@ object PermissionUtils {
coarseLocation == PackageManager.PERMISSION_GRANTED &&
nearbyWifi == PackageManager.PERMISSION_GRANTED
}
fun mapPermissionResult(result: Int): String {
return if (result == PackageManager.PERMISSION_GRANTED) "granted" else "denied"
}
}