3

我有以下问题:

我的应用程序分布在 MDM 系统上,并在 Android for Work 中运行。在某些情况下,应用程序必须暂时终止 DnD 模式。为此,用户必须在应用启动时授予 DnD 权限。

到现在为止还挺好。如果我在非托管区域安装应用程序,应用程序会显示在列表中,并且可以毫无问题地授予权限。一旦应用程序通过 MDM 系统分发,应用程序将不再出现在列表中,并且无法授予权限。所有授权均已在 MDM 系统中授予。例如,我通过 MDM 系统分发了 Google App。此应用程序出现在列表中。

截图图片

在清单中,我设置了以下权限:

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

当应用程序启动时,会执行以下代码:

NotificationManager nm = (NotificationManager).getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M && !nm.isNotificationPolicyAccessGranted()) {
  Intent intent = new
  Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
  startActivity(intent);
}

该问题仅发生在 DnD 权限下。所有其他权限(例如覆盖权限)都可以正常显示。

我希望任何人都可以帮助我。

4

5 回答 5

2

根据Android文档:不可能

用户可以从此处授予和拒绝对“请勿打扰”配置的访问权限。托管配置文件无法授予“请勿打扰”访问权限。

于 2019-07-08T05:56:40.763 回答
1

显然在 Google 问题跟踪器https://issuetracker.google.com/issues/77939714上有关于此问题的报告

这是谷歌的回复:

状态:无法修复(预期行为) 上午 11:41 您无法从托管配置文件应用更改 DND 设置。我们将更新文档以澄清这一点。

还有一个回复说:

Microsoft Intune 已发布其针对 Android 设备的完全托管的 Android Enterprise 配置文件设置。...它现在可以访问并授予 DnD 权限。不确定是我们已经使用完全托管的设备还是其他事情发生了变化。

我相信这实际上是因为设备是完全托管的。

所以根据我的理解,有两种选择:

  • 完全托管的设备(需要在手机上恢复出厂设置)
  • 将其安装在个人资料中
于 2020-02-21T08:40:55.147 回答
0

我还没有找到合适的解决方案,但我找到了在工作区显示应用程序的解决方法。似乎只有在私人区域中也安装了相同的应用程序时,该应用程序才会显示在对话框中。如果应用程序没有安装在私人区域,它也不会出现在工作区域中。我的解决方法是在私人和工作区安装应用程序。在工作区获得权限后,我将应用程序从私人区域中删除。就像我说的,这不是问题本身的解决方案,但它确实有效。对我来说,这看起来像是 Android 中的一个错误,因为对于所有其他权限,该应用程序都会出现在列表中

于 2019-02-14T10:26:51.607 回答
0

我们对应用 SignOnSite 也有同样的问题。除非我们也在个人空间中安装了该应用程序,否则无法访问 DnD 功能进行紧急疏散。这样做很冒险,所以最终只是在个人空间中安装了该应用程序。将 Intune 用于我们的 MDM。

于 2019-08-13T02:46:41.490 回答
-2

试试这个 -

Intent intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");
    startActivity(intent);
于 2018-04-19T08:39:36.680 回答