在新的Android 5.0 Lollipop上,在名为“使用NuPlayer(beta)”的开发者选项中添加了一个新设置。启用此设置后,我的应用程序有时无法正常运行。我担心当Android的新版本向公众发布时,许多人会启用它并且在不知道错误的情况下我的应用程序出现问题。
所以我只想在设备上检查NuPlayer设置时才显示有关此内容的警告消息。我尝试在Android的文档中查找它,但我找不到如何访问这个新设置的状态。
所以问题是,如何以编程方式检查此设置的值?
由于
答案 0 :(得分:5)
我通过请求从这里交叉发布我的答案:
Prevent my audio app using NuPlayer on Android Lollipop 5.x?
所以,我终于找到了一种方法来安全地检测是否会在棒棒糖上使用或不使用NuPlayer
。似乎现在最好的策略是通知用户打开开发者设置并启用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);
}
}