我有以下问题:
我的应用程序通过MDM系统分发,并在Android for Work中运行。 在某些情况下,应用程序必须暂时终止DnD模式。要实现此目的,用户必须在应用程序启动时授予DnD权限。
到目前为止一切顺利。如果我在非托管区域安装应用程序,则应用程序会显示在列表中,并且可以毫无问题地授予权限。 只要应用程序通过MDM系统分发,应用程序就不再出现在列表中,并且无法授予权限。所有授权都已在MDM系统中授予。例如,我通过MDM系统分发了Google App。此应用程序显示在列表中。
在Manifest中,我设置了以下权限:
<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权限才会出现此问题。所有其他权限(例如叠加权限)都会毫无问题地显示。
我希望有人能帮助我。
答案 0 :(得分:0)
我还没有找到解决该问题的合适方法,但是我找到了一种解决方法来在工作区中显示该应用程序。似乎只有在私有区域中也安装了该应用程序的情况下,该应用程序才会显示在对话框中。 如果该应用程序未安装在私有区域中,它也不会出现在工作区中。 我的解决方法是在专用和工作区中安装该应用程序。授予工作区许可后,我从私人区域中删除了该应用程序。就像我说的那样,这不是解决问题本身的方法,但它确实有效。 对我来说,这似乎是Android中的错误,因为对于所有其他权限,该应用程序都会显示在列表中
答案 1 :(得分:0)
根据Android文档:不可能
用户可以从此处授予和拒绝对“请勿打扰”配置的访问权限。托管配置文件无法授予“请勿打扰”访问权限。
答案 2 :(得分:0)
我们的应用程序SignOnSite存在相同的问题。除非我们也在个人空间中也安装了该应用程序,否则无法访问DnD功能以进行紧急疏散。这样做会冒风险,因此最终只能在个人空间中安装该应用程序。 在我们的MDM中使用Intune。
答案 3 :(得分:0)
很明显,在Google Issue Tracker上已报告有关此问题的信息 https://issuetracker.google.com/issues/77939714
这是Google的回复:
状态:无法解决(预期行为),上午11:41您无法更改DND 托管个人资料应用中的设置。我们将更新 文档来澄清这一点。
还有一个回复说明:
Microsoft Intune发布了完全托管的Android Enterprise Android设备的个人资料设置。 ...它现在可以访问和 授予DnD权限。不知道我们已经走了吗 到完全托管的设备或其他更改。
我相信这实际上是因为设备受到完全管理。
所以根据我的了解,有两种选择:
答案 4 :(得分:-1)
试试这个 -
Intent intent = new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS");
startActivity(intent);