更新: 設置上的MediaPlayer的部分喚醒鎖解決這個問題:
playerToPrepare.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK);
的部分喚醒鎖應該不會有太大的影響,而且好像自己的MediaPlayer播放完成後清除它。
- 原來的答案---
所以,我終於找到了一種方法來安全地檢測羯羊或不NuPlayer
會被使用或者不棒棒糖。似乎現在的最佳策略是通知用戶打開開發人員設置並啓用AwesomePlayer
,直到Google修復NuPlayer
。 不幸的是,沒有好的方法來改變用戶的這個設置,除非你被簽名爲系統應用程序,否則我們可以只讀取它的值。
此方法檢查Android的系統屬性值,以查看用戶是否已在開發人員設置下啓用AwesomePlayer的使用。由於Lollipop默認啓用了NuPlayer,如果此值被禁用,我們知道NuPlayer將被使用。
將SystemProperties.java拖放到您的項目中以獲取讀取系統屬性,不要從android.os
(它調用通過其相應的JNI方法,因此需要保持不變)更改其包名稱。
現在,您可以檢查手機棒棒糖/ 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);
}
}
你好。你設法弄清楚了嗎? – AndreiBogdan 2015-02-18 16:31:44
不,不幸的是。 [Android問題跟蹤器存在問題](https://code.google.com/p/android/issues/detail?id=83132)。 – verysuperfresh 2015-02-19 17:30:22
查看我更新的答案,我們發現了一個有效的解決方法。 – 2015-03-27 14:49:17