У меня были проблемы с Android Media Player, потому что, когда я выключаю экран, система переходит в спящий режим и останавливает его, и я этого не хотел, потому что никто не хочет слушать музыку и включать экран (кто это делает?).
Я заметил, что проблема была в оптимизации батареи, потому что, если мобильный телефон был подключен к кабелю питания, он продолжал играть музыку, даже если он переходит в спящий режим.
Я пытался с большим количеством возможностей исправить это (чтение документации Android и пробовать все, что я нашел в сети), но работал следующий код:
public void doPower() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String packageName = getActivity().getPackageName();
PowerManager pm = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
try {
//some device doesn't has activity to handle this intent
//so add try catch
Intent intent = new Intent();
intent.setAction(android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
} catch (Exception e) {
}
}
}
}
Проблема здесьэто: приложение в начале показывает предупреждение, запрашивающее у пользователя отключить оптимизацию батареи, и я этого не хочу, потому что некоторые пользователи могут подумать, что «это плохо» или «почему его спрашивают об этом?»Потому что приложение вроде spotify не делает этого.
Как мне избежать предупреждения?Если я не могу, как я могу добавить что-то еще к сообщению?(что-то вроде этого: «Так что вы сможете слушать радио с выключенным экраном»)
Заранее спасибо и наилучшими пожеланиями.