startActivityForResult + ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS

startActivityForResult + ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS

首先:我正在寻找答案,但在 Google 中也没有找到答案。

当我 运行 此代码(在 kotlin 和 Android 10 上)时:

startActivityForResult(Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS),Uri.parse("package:" + packageName)), 55)

异常结束:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS dat=package:dantem.im }

但是这段代码没有任何问题:

startActivityForResult(Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + packageName)), 200)

此代码也有效,但它显示了我不想要的所有包的列表:

startActivity(Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS))

问题出在哪里?

The documentation for ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS 表示它不需要任何输入。这就是为什么您会发现很多(如果不是全部的话)Android 设备给您 ActivityNotFoundExceptionIntent 上的 Uri 导致 Intent 不匹配任何 <intent-filter>.