package com.galaxy.permision import android.Manifest import android.app.Activity import android.content.pm.PackageManager import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat object AccountPermissionUtils { private const val PERMISSION_REQUEST_CODE = 123 /** * 检查并请求账户管理所需的权限 * @return 如果所有权限已授予返回true,否则返回false */ fun checkAndRequestAccountPermissions(activity: Activity): Boolean { val permissions = arrayOf( "android.permission.AUTHENTICATE_ACCOUNTS", "android.permission.MANAGE_ACCOUNTS", "android.permission.ADD_ACCOUNTS" ) val missingPermissions = mutableListOf() // 检查缺少的权限 for (permission in permissions) { if (ContextCompat.checkSelfPermission( activity, permission ) != PackageManager.PERMISSION_GRANTED ) { missingPermissions.add(permission) } } // 请求缺少的权限 if (missingPermissions.isNotEmpty()) { ActivityCompat.requestPermissions( activity, missingPermissions.toTypedArray(), PERMISSION_REQUEST_CODE ) return false } // 所有权限已授予 return true } /** * 处理权限请求结果 * @return 如果所有请求的权限都被授予返回true,否则返回false */ fun handlePermissionResult( requestCode: Int, permissions: Array, grantResults: IntArray ): Boolean { if (requestCode == PERMISSION_REQUEST_CODE) { for (result in grantResults) { if (result != PackageManager.PERMISSION_GRANTED) { return false } } return true } return false } }