我在Android上运行了一个应用程序,它只使用webview来显示移动网络应用程序,并在某些时候使用设备的GPS来获取其位置.
我有一个自定义的ChromeWebClient等,它可以很好地获得它们的位置,除了在启用了省电模式的设备上?在SDK/API中是否有我能够确定用户是否已启用此功能并相应地提供建议?我在文档中找不到任何内容,所以我假设不是值得一试,
干杯,
背风处
在评论之后
根据我的经验,三星以及HTC是以最难以预测的方式修改Android操作系统的制造商之一.它们增加了新的功能和模式,如4G切换启动器小部件和"省电模式".他们修改了记录的SDK方法的权限要求,即在应用程序需要的三星设备上打开蓝牙并获得额外的android.permission.BLUETOOTH权限,而Android只需要库存android.permission.BLUETOOTH_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.
}
Run Code Online (Sandbox Code Playgroud)
您可以更精细,让您的应用检测设备制造商在所有三星设备上显示自定义消息.
| 归档时间: |
|
| 查看次数: |
5323 次 |
| 最近记录: |