Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解是否已启用节能模式-Android SDK_Android - Fatal编程技术网

了解是否已启用节能模式-Android SDK

了解是否已启用节能模式-Android SDK,android,Android,我有一个在Android上运行的应用程序,它只使用一个webview来显示一个移动web应用程序,并且在某些时候使用设备的GPS来获取他们的位置 我有一个定制的ChromeWebClient等,它很好地获得了它们的位置,除了在启用节能模式的设备上? SDK/API中是否有任何东西让我能够确定用户是否启用了此功能并相应地向他们提供建议? 我在文件里找不到任何东西,所以我想不值得一试 干杯 李在发表评论后 根据我的经验,三星和HTC都是以最不可预测的方式修改Android操作系统的制造商之一。他们增

我有一个在Android上运行的应用程序,它只使用一个webview来显示一个移动web应用程序,并且在某些时候使用设备的GPS来获取他们的位置

我有一个定制的ChromeWebClient等,它很好地获得了它们的位置,除了在启用节能模式的设备上? SDK/API中是否有任何东西让我能够确定用户是否启用了此功能并相应地向他们提供建议? 我在文件里找不到任何东西,所以我想不值得一试

干杯

在发表评论后

根据我的经验,三星和HTC都是以最不可预测的方式修改Android操作系统的制造商之一。他们增加了新的功能和模式,比如4G交换启动器小部件和“节能模式”。他们修改了记录在案的SDK方法的权限要求,即在三星设备上打开蓝牙,你的应用程序需要具备附加的
android.permission.bluetooth
权限,而股票android只需要
android.permission.bluetooth\u ADMIN
。还有更多

长话短说,正如@RaghavSood指出的,“节能模式”不是官方的AOSP功能,也没有办法通过官方SDK检测到它。不过,有一种可能的解决方法。我相信你的应用程序很可能在省电模式下出现错误,因为这种模式会关闭GPS。您可以通过在“设置”中将节能模式配置为禁用GPS禁用来确认这一点(对不起,这是最好的说法)-。然后测试应用程序。它有用吗?如果是的话,那么问题是你造成的,现在你的工作是让用户知道没有GPS你的应用程序无法运行。您可以在应用程序中输入一些代码来检测GPS服务是否已启用,如果未启用,则显示警报对话框。活动中的代码可以如下所示:

LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
    //Show a notification prompting user to switch on GPS.
}

你可以更精细地让你的应用程序检测设备制造商,在所有三星设备上显示自定义消息。

你所说的
节能模式是什么意思?@raghasood在Galaxy S4上就是一个例子。该设备具有可启用的“节能模式”,只有启用该模式,我才能从Web应用程序获取GPS位置。如果不是省电模式,我可以找出应用程序是否允许GPS定位吗?好的,这不是官方的AOSP功能,因此公共SDK不太可能有方法来观察它。三星可能在设置类中添加了API或选项,但我不能确定。为什么不直接检查定位服务的可用性?@JermaineXu按照下面的回答完成。谢谢你的解决方案,因为这是可行的解决方案:)谢谢你的详细回复:)Burrows