1. use XXPermissions to manage REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.

2. pre-request permission on Start on Boot enabled.
This commit is contained in:
csf
2023-02-28 21:02:42 +09:00
parent 73bc963311
commit 60ab29ad6e
5 changed files with 43 additions and 47 deletions

View File

@@ -18,6 +18,7 @@ import android.provider.Settings
import android.util.Log
import android.view.WindowManager
import androidx.annotation.RequiresApi
import com.hjq.permissions.XXPermissions
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
@@ -76,7 +77,7 @@ class MainActivity : FlutterActivity() {
}
"check_permission" -> {
if (call.arguments is String) {
result.success(checkPermission(context, call.arguments as String))
result.success(XXPermissions.isGranted(context, call.arguments as String))
} else {
result.success(false)
}
@@ -115,10 +116,6 @@ class MainActivity : FlutterActivity() {
)
result.success(true)
}
"init_input" -> {
initInput()
result.success(true)
}
"stop_input" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
InputService.ctx?.disableSelf()
@@ -177,13 +174,6 @@ class MainActivity : FlutterActivity() {
}
}
private fun initInput() {
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
override fun onResume() {
super.onResume()
val inputPer = InputService.isOpen

View File

@@ -13,6 +13,7 @@ import android.os.Build
import android.os.Handler
import android.os.Looper
import android.os.PowerManager
import android.provider.Settings
import android.provider.Settings.*
import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat.getSystemService
@@ -41,8 +42,6 @@ const val START_ACTION = "start_action"
const val GET_START_ON_BOOT_OPT = "get_start_on_boot_opt"
const val SET_START_ON_BOOT_OPT = "set_start_on_boot_opt"
const val IGNORE_BATTERY_OPTIMIZATIONS = "ignore_battery_optimizations"
const val KEY_SHARED_PREFERENCES = "KEY_SHARED_PREFERENCES"
const val KEY_START_ON_BOOT_OPT = "KEY_START_ON_BOOT_OPT"
@@ -70,21 +69,15 @@ fun requestPermission(context: Context, type: String) {
}
}
@RequiresApi(Build.VERSION_CODES.M)
fun checkPermission(context: Context, type: String): Boolean {
if (IGNORE_BATTERY_OPTIMIZATIONS == type) {
val pw = context.getSystemService(Context.POWER_SERVICE) as PowerManager
return pw.isIgnoringBatteryOptimizations(context.packageName)
}
return XXPermissions.isGranted(context, type)
}
@RequiresApi(Build.VERSION_CODES.M)
fun startAction(context: Context, action: String) {
try {
context.startActivity(Intent(action).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
data = Uri.parse("package:" + context.packageName)
// don't pass package name when launch ACTION_ACCESSIBILITY_SETTINGS
if (ACTION_ACCESSIBILITY_SETTINGS != action) {
data = Uri.parse("package:" + context.packageName)
}
})
} catch (e: Exception) {
e.printStackTrace()