20 lines
758 B
Kotlin
20 lines
758 B
Kotlin
package com.stardust.app
|
|
|
|
import android.app.AppOpsManager
|
|
import android.content.Context
|
|
import android.content.pm.PackageManager
|
|
import android.os.Build
|
|
import androidx.annotation.RequiresApi
|
|
|
|
|
|
@RequiresApi(Build.VERSION_CODES.KITKAT)
|
|
fun Context.isOpPermissionGranted(permission: String): Boolean {
|
|
val appOps = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
|
|
val mode = appOps.checkOpNoThrow(permission, android.os.Process.myUid(), packageName)
|
|
|
|
return if (mode == AppOpsManager.MODE_DEFAULT && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
checkCallingOrSelfPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) == PackageManager.PERMISSION_GRANTED
|
|
} else {
|
|
mode == AppOpsManager.MODE_ALLOWED
|
|
}
|
|
} |