android 申请电池优化,自启动,无障碍权限

复制代码
代码仅用于自己记忆,都是实际跑过的
/**
 * 引导开通-无障碍服务
可以跳转到系统的无障碍功能,并高亮自己的app
 */

fun gotoAccessibilitySetting(context: Context) {
    val EXTRA_FRAGMENT_ARG_KEY = ":settings:fragment_args_key";
    val EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":settings:show_fragment_args";
    try {
        context.startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS).apply {
            val bundle = Bundle()
            val componentName = ComponentName(context.packageName, AssistantService::class.java.name).flattenToString()
            bundle.putString(EXTRA_FRAGMENT_ARG_KEY, componentName)
            putExtra(EXTRA_FRAGMENT_ARG_KEY, componentName)
            putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, bundle)
        })
    } catch (e: Exception) {
        e.printStackTrace()
    }
}
复制代码
    /**
     * 引导开通-电池管理优化
     * 申请加入白名单
两种方法,可以看自己使用哪种
     * */
    fun openBatteryOptimizationSettings(context: Context) {
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                val intent = Intent()
//                intent.action = Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
//                context. startActivity(intent)
                //方法2、触发系统对话框
                val intent =   Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
                intent.setData(Uri.parse("package:"+context.packageName));
                context.startActivity(intent);

            }


        }catch (e:Exception){
            LogUtils.e("openBatteryOptimizationSettings_e=${e.localizedMessage}")
        }

    }
复制代码
/** 自启动有点麻烦,没心情做机型适配的可以直接跳转系统界面
 * 跳转:「应用详情」界面
 */
@JvmStatic
fun gotoAppDetailSetting(mContext: Activity) {
    try {
        val packageName = mContext.packageName
        mContext.startActivity(getAppDetailSettingIntent(packageName))


    } catch (e: Exception) {
        e.printStackTrace()
    }
}
复制代码
/**
 * 获取应用详情页面intent
 *
 * @return
 */
fun getAppDetailSettingIntent(packageName: String?): Intent {
    val localIntent = Intent()
    localIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
    if (Build.VERSION.SDK_INT >= 9) {
        localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
        localIntent.data = Uri.fromParts("package", packageName, null)
    } else if (Build.VERSION.SDK_INT <= 8) {
        localIntent.action = Intent.ACTION_VIEW
        localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails")
        localIntent.putExtra("com.android.settings.ApplicationPkgName", packageName)
    }
    return localIntent
}
相关推荐
ii_best4 分钟前
按键精灵手机助手 v5.2.1 实测:inputText 逐字延时 + 调试面板多行复制,安卓脚本开发的两个输入痛点一次解决
android·开发语言·智能手机·自动化·ai编程·按键精灵
hunterandroid10 分钟前
OkHttp 源码解析:拦截器链、连接池与缓存策略的设计精髓
android
计算机魔术师15 分钟前
AI渗透框架3小时破云,中国黑客组织正在升级打法
前端
蒲公英内测分发17 分钟前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
朱涛的自习室24 分钟前
高价软件已死,我让 AI 开启了「平替计划」(Day 7 / 7)
android·前端·github
沙蒿同学39 分钟前
Wails v3 实战:一个桌面提醒客户端,从 v2 升到 v3 的全过程
前端·后端·github
脚踏实地,坚持不懈!42 分钟前
Android 图形系统:图形总览 + SurfaceFlinger 与 WindowManager
android
2501_915918411 小时前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
inquisiter1 小时前
KernelGpt的部分尝试
java·前端·apache