有功能需要用户打开辅助功能,需要vivo机型上的适配,判断辅助功能未开启时跳转该页面
adb 查看无障碍辅助功能是哪个页面
mCurrentFocus=Window{2609cb0 u0 com.android.settings/com.vivo.settings.VivoSubSettings}
但好多页面查看后都是这个,所以页面有多个fragment,需要反编译查看如何展示
导出Settings.apk,jadx打开apk
先打开AndroidManifest.xml,找到VivoSubSettings页面
没看到特殊的权限,说明可以直接跳转,而且很容易注意到有一个不一样的action,直接查看代码
能看到有个很多fragment的name集合,并且getintent中也有做处理,直接找关键代码
很容易反推出需要传的值,key是”extra”,value是刚刚很多fragment的name集合中的某个值就可以,很容易找到辅助功能的类名是com.android.settings.accessibility.AccessibilitySettings
val intent = Intent("android.settings.SETTINGS.SUB_SETTINGS")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.component = ComponentName("com.android.settings", "com.vivo.settings.VivoSubSettings")
intent.putExtra("extra","fragment:com.android.settings.accessibility.AccessibilitySettings")
mContext.startActivity(intent)
再加上辅助功能是否打开就可以了