После Ридинг комментарии
В моем опыте Samsung, а также HTC, является одним из производителей, которые изменяют ОС Android самыми непредсказуемыми способами. Они добавляют новые функции и режимы, такие как 4G-переключатели запуска и режим энергосбережения. Они изменяют требования к разрешению для документированных методов SDK, то есть для включения Bluetooth на устройстве Samsung, которое должно иметь ваше приложение, и дополнительном разрешении android.permission.BLUETOOTH
, в то время как для Android требуется только android.permission.BLUETOOTH_ADMIN
. И еще есть.
Длинный рассказ, так как @RaghavSood отметил, что «режим энергосбережения» не является официальной функцией AOSP и нет способов обнаружить его через официальный SDK. Есть возможный способ, как вы можете обойти его, хотя. Я считаю, что, скорее всего, ваше приложение не работает в режиме энергосбережения, потому что этот режим отключает GPS. Вы можете подтвердить это, настроив режим энергосбережения в настройках, чтобы отключить отключение GPS (не могу сказать это лучше, извините) - first link from google with steps. Затем проверьте приложение. Это работает? Если да, то у вас возникла проблема root, и теперь ваша задача - сообщить пользователю, что ваше приложение не будет работать без GPS. Вы можете поместить некоторый код в свое приложение, чтобы определить, включен ли сервис GPS, показывать диалоговое окно предупреждения, если это не так. Код в вашей деятельности может выглядеть следующим образом:
LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//Show a notification prompting user to switch on GPS.
}
Вы можете быть еще более сложными и сделать ваше приложение обнаружить производителя устройства, чтобы показать пользовательские сообщения на всех устройствах Samsung.
Что вы подразумеваете под режимом энергосбережения? –
@ RaghavSood На Галактике S4, например. устройство имеет режим энергосбережения, который можно активировать, и только когда это разрешено, у меня возникает вопрос о том, как получить местоположение GPS из веб-приложения. Если не режим энергосбережения, могу ли я узнать, разрешено ли приложению размещение GPS? – theiOSDude
AFAIK, это не официальная функция AOSP, поэтому вряд ли общедоступный SDK будет иметь возможность его наблюдать. Samsung, возможно, добавил API или вариант в классы настроек, но я не могу сказать точно. –