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

View File

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