新增 可以使用"查看使用统计权限"增强currentPackage()的准确性,在代码中通过auto.setFlags("useUsageStats")启用
This commit is contained in:
20
common/src/main/java/com/stardust/app/AppOps.kt
Normal file
20
common/src/main/java/com/stardust/app/AppOps.kt
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user