华为的快捷方式设置页第三方跳转不了

private fun startXiaoMiPermissionActivity(context: Context) {
    val action = "com.miui.securitycenter"
    val packageName = "miui.intent.action.APP_PERM_EDITOR"
    try {
        val xiaoMiIntent = Intent(action)
        xiaoMiIntent.putExtra("extra_pkgname", context.getPackageName())
        xiaoMiIntent.setClassName(
            packageName,
            "com.miui.permcenter.permissions.PermissionsEditorActivity"
        )
        context.startActivity(xiaoMiIntent)
    } catch (e: ActivityNotFoundException) {
        val xiaoMiIntent = Intent(action)
        xiaoMiIntent.putExtra("extra_pkgname", context.packageName)
        xiaoMiIntent.setClassName(
            packageName,
            "com.miui.permcenter.permissions.AppPermissionsEditorActivity"
        )
        context.startActivity(xiaoMiIntent)
    }
}
private fun startVivoShortcutSettingActivity(context: Context) {
    val localIntent: Intent
    if (Build.MODEL.contains("Y85") && !Build.MODEL.contains("Y85A") || Build.MODEL.contains("vivo Y53L")) {
        localIntent = Intent()
        localIntent.setClassName(
            "com.vivo.permissionmanager",
            "com.vivo.permissionmanager.activity.PurviewTabActivity"
        )
        localIntent.putExtra("packagename", context.packageName)
        localIntent.putExtra("tabId", "1")
        context.startActivity(localIntent)
    } else {
        localIntent = Intent()
        localIntent.setClassName(
            "com.vivo.permissionmanager",
            "com.vivo.permissionmanager.activity.SoftPermissionDetailActivity"
        )
        localIntent.action = "secure.intent.action.softPermissionDetail"
        localIntent.putExtra("packagename", context.packageName)
        context.startActivity(localIntent)
    }
}
private fun startOppoShortcutSettingActivity(context: Context) {
    val intent = Intent()
    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
    val comp =
        ComponentName.unflattenFromString("com.oppo.launcher/.shortcut.ShortcutSettingsActivity")
    intent.component = comp
    context.startActivity(intent)
}
//调用
fun jumpToShortcutPermissionSetting(context: Context){
    try {
        when {
            RomUtils.isXiaomi() -> {
                startXiaoMiPermissionActivity(context)
            }
            RomUtils.isOppo() -> {
                startOppoShortcutSettingActivity(context)
            }
            RomUtils.isVivo() -> {
                startVivoShortcutSettingActivity(context)
            }
            else -> {
                //谷歌官方提供的action,基本跳转不了
                val intent = Intent()
                intent.action = Settings.ACTION_QUICK_LAUNCH_SETTINGS
                context.startActivity(intent)
            }
        }
    } catch (e: Exception) {
        val intent = Intent()
        intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
        intent.data = Uri.fromParts("package", Utils.getApp().packageName, null)
        context.startActivity(intent)
    }
}
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐