【问题标题】:How to direct users for enabling accessibility service for my app如何指导用户为我的应用启用无障碍服务
【发布时间】:2023-04-07 14:21:02
【问题描述】:

我知道以编程方式为应用启用辅助功能服务是不可能的,因此我想将用户引导至此屏幕: System settings --> Accessibility --> app name --> enable/disable screen。 这可能吗?

【问题讨论】:

    标签: android accessibility


    【解决方案1】:

    您可以将它们带到大多数设备上的辅助功能屏幕using ACTION_ACCESSIBILITY_SETTINGS。然而:

    • 这可能不适用于所有设备,因此如果您收到 ActivityNotFoundException

    • ,您只需将它们发送到“设置”作为备用
    • 没有办法让它们直接进入任何给定的应用程序,更不用说启用/禁用屏幕了

    【讨论】:

      【解决方案2】:

      您至少可以让它到达应用程序,使应用程序项闪烁。它应该适用于大多数设备,或者至少适用于 Pixel 设备:

          fun <T : AccessibilityService> getRequestAccessibilityPermissionIntents(context: Context, accessibilityService: Class<T>): Array<Intent> {
              var intent = Intent("com.samsung.accessibility.installed_service")
              if (intent.resolveActivity(context.packageManager) == null) {
                  intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
              }
              val extraFragmentArgKey = ":settings:fragment_args_key"
              val extraShowFragmentArguments = ":settings:show_fragment_args"
              val bundle = Bundle()
              val showArgs = "${context.packageName}/${accessibilityService.canonicalName!!}"
              bundle.putString(extraFragmentArgKey, showArgs)
              intent.putExtra(extraFragmentArgKey, showArgs)
              intent.putExtra(extraShowFragmentArguments, bundle)
              return arrayOf(intent, Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
                  .addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY))
          }
      

      用法:

          private fun requestAccessibilityPermission() {
              getRequestAccessibilityPermissionIntents(this, MyAccessibilityService::class.java).forEach { intent ->
                  try {
                      startActivity(intent)
                      return
                  } catch (e: Exception) {
                  }
              }
              //TODO do something here in case it failed
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-19
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多