我正在为 COSU 设备构建应用程序。我的代码基于 Google 提供的以下示例:
Codelabs.developers.google.com/cosu
其中LockedActivity
有以下一段代码:
private void setDefaultCosuPolicies(boolean active){
// Set user restrictions
setUserRestriction(UserManager.DISALLOW_SAFE_BOOT, active);
setUserRestriction(UserManager.DISALLOW_FACTORY_RESET, active);
setUserRestriction(UserManager.DISALLOW_ADD_USER, active);
setUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA, active);
setUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME, active);
// remainder of this method is left out for simplicity
}
private void setUserRestriction(String restriction, boolean disallow){
if (disallow) {
mDevicePolicyManager.addUserRestriction(mAdminComponentName,
restriction);
} else {
mDevicePolicyManager.clearUserRestriction(mAdminComponentName,
restriction);
}
}
在active == true
上面的代码段中,音量按钮由于setUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME, true)
. 但是,这也会使主音量静音(在此处记录)。这会阻止我的应用程序播放任何声音。就个人而言,我认为最好将音量简单地冻结在它的水平,或者如果音量至少可以通过编程方式进行配置(似乎并非如此)。
我可以以编程方式覆盖音量增大/减小按钮,但这感觉更像是一种解决方法/黑客(例如,这里完成)。
所以我的问题是:有没有办法在将UserManager.DISALLOW_ADJUST_VOLUME
用户权限设置为 true 的同时取消主音量的静音?或者有什么体面的解决方法吗?