Android LocationManager显示始终启用的不存在的gps提供程序

时间:2013-09-06 10:26:32

标签: android locationmanager

我需要使用任何可用的提供程序来获取用户位置数据。当所有提供程序都被禁用时,我需要弹出一个对话框,并允许用户转到位置服务和 启用提供商(GPS和/或网络中的任何一个)。我遇到了检查提供者是否在Prestigio PMP5197D ULTRA上可用的问题。它没有GPS服务。 我使用了以下代码:

// I get and log list of disabled providers...
ArrayList<String> names = (ArrayList<String>)locationManager.getProviders(false);
for(String t: names){
    Log.e("TEST", "DISABLED " + t);
}

// I get and log list of enabled providers...
ArrayList<String> names2 = (ArrayList<String>)locationManager.getProviders(true);
for(String t: names2){
    Log.e("TEST", "ENABLED " + t);
}

在以下设备上一切正常......

NEXUS 7(2013)(4.3)
地点在设置中被禁用
禁用被动
禁用gps
DISABLED网络
启用被动

设置中启用的位置
禁用被动
禁用gps
DISABLED网络
启用被动
启用gps
启用网络

HTC Desire(2.2.2)
地点在设置中被禁用
DISABLED网络
禁用被动
禁用gps
启用被动

设置中启用的位置
禁用被动
禁用gps
启用网络
启用被动
启用了gps

但是在这款平板电脑上,我总是将GPS视为活动状态,这非常奇怪,因为我在设备上没有GPS。当然,在设置中没有GPS选项。

Prestigio PMP5197D ULTRA(4.0.3) - 该设备没有GPS
地点在设置中被禁用
DISABLED网络
禁用被动
禁用gps
启用被动
启用了gps

设置中启用的位置
DISABLED网络
禁用被动
禁用gps
启用网络
启用被动
启用了gps

当用户尝试单击位置按钮时,如果禁用了位置服务(只有网络可用),我应该在用户提到的对话框之前弹出。 但是,由于位置管理器的方法isProviderEnabled(LocationManager.GPS_PROVIDER)返回true,它看起来像GPS启用,实时和踢。所以,我没有 向用户显示对话框,也不提取任何数据。 有没有人知道这个问题的解决方法?

0 个答案:

没有答案