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