android - 在 Android 5.0 上获取 NuPlayer 设置

标签 android settings

在新的 Android 5.0 Lollipop 上,开发者选项中添加了一个名为“使用 NuPlayer(测试版)”的新设置。启用此设置后,我的应用程序有时无法正常运行。恐怕当新版本的 Android 向公众发布时,很多人会启用它并且在不知道问题出在哪里的情况下遇到我的应用程序的问题。

所以我只想在设备上选中 NuPlayer 设置时显示一条警告消息。我尝试在 Android 文档中查找它,但找不到如何访问此新设置的状态。

所以问题是,我如何以编程方式检查此设置的值?

谢谢

最佳答案

我应要求从这里交叉发布我的答案:

Prevent my audio app using NuPlayer on Android Lollipop 5.x?

所以,我终于找到了一种方法来安全地检测 NuPlayer 是否会在 Lollipop 上使用。似乎目前最好的策略是通知用户打开开发者设置并启用 AwesomePlayer,直到 Google 修复 NuPlayer。 遗憾的是,没有为用户更改此设置的好方法,除非您已作为系统应用程序签名,否则我们只能读取其值。

此方法检查 Android 的系统属性值,以查看用户是否在开发人员设置下启用了 AwesomePlayer 的使用。由于 Lollipop 默认启用 NuPlayer,如果禁用此值,我们知道将使用 NuPlayer。

放下SystemProperties.java进入您的项目以访问读取系统属性,不要更改其包名 android.os(它会调用相应的 JNI 方法,因此需要保持不变)。

您现在可以检查手机是否为 Lollipop/5.0,是否启用了 AwesomePlayer,如果未启用则采取相应措施(例如通过打开开发者设置):

public void openDeveloperSettingsIfAwesomePlayerNotActivated(final Context context) {
    final boolean useAwesome = SystemProperties.getBoolean("persist.sys.media.use-awesome", false);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !useAwesome) {
        final Intent intent = new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS);
        context.startActivity(intent);                
    }
}

关于android - 在 Android 5.0 上获取 NuPlayer 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567454/

相关文章:

android - Meteor:一个后端 - 多个不同的前端 2x web 和 1x mobile

java - 试图在 LibGDX 中画一个圆圈

iphone - XCode/iOS 中特定于区域设置的默认设置

c# - Visual Studio 将无法识别新的设置文件

android - 可以将 android 资源字符串组合成新字符串吗?

android - android中的两个推送通知服务

android - 我们还应该使用 MediaStore.Images.Media.insertImage() 方法吗?

python - 如何使用 django 正确显示用户生成的图像?

dialog - 是否可以调整 Visual Studio 中固定对话框的大小?

properties - 选项、设置、属性、配置、首选项——何时以及为什么?