获取'未启用提供者| ProviderErrorprovider='network'' 调用'tracker.startListening();'即使启用了 WiFi
Posted
技术标签:
【中文标题】获取\'未启用提供者| ProviderErrorprovider=\'network\'\' 调用\'tracker.startListening();\'即使启用了 WiFi【英文标题】:Getting 'Provider is not enabled | ProviderErrorprovider='network'' on calling 'tracker.startListening();' even when WiFi is enabled获取'未启用提供者| ProviderErrorprovider='network'' 调用'tracker.startListening();'即使启用了 WiFi 【发布时间】:2017-05-03 12:41:18 【问题描述】:我正在使用this 库并尝试像这样检索当前位置坐标:
settings =
new TrackerSettings()
.setUseGPS(false)
.setUseNetwork(true)
.setUsePassive(true)
.setTimeBetweenUpdates(30 * 60 * 1000);
tracker = new LocationTracker(getBaseContext(), settings)
@Override
public void onLocationFound(Location location)
// Do some stuff
currentLatDouble = location.getLatitude();
currentLngDouble = location.getLongitude();
@Override
public void onTimeout()
;
tracker.startListening();
但是,我收到了这个错误:
W/LocationTracker: Provider (network)
fr.quentinklein.slt.ProviderError: Provider is not enabled | ProviderErrorprovider='network'
WiFi不是网络提供商还是我也需要写一些与LocationManager
相关的代码?
请告诉我这里出了什么问题。
【问题讨论】:
检查github.com/quentin7b/android-location-tracker/issues/19 @Nas 是的,我也在那里打开了一个问题。 在那个库中它有 android.permission.ACCESS_FINE_LOCATION 只能尝试添加 wifi 状态访问权限 @Nas 即使在添加<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
后也会出现相同的错误
【参考方案1】:
在清单文件中添加以下权限
<uses-permission android:name="android.permission.INTERNET" />
Allows applications to open network sockets.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Allows an app to access approximate location.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Allows an app to access precise location.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Allows applications to access information about networks.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Allows applications to access information about Wi-Fi networks.
另外
<uses-feature
android:name="android.hardware.location.network"
android:required="false" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
【讨论】:
你是在设备还是模拟器中运行它?你的操作系统版本是多少? 我在设备上运行它 你的操作系统版本是多少?你的wifi启用了吗? android marshmallow 是的,WiFi 已启用,我已经检查了权限并授予了它。以上是关于获取'未启用提供者| ProviderErrorprovider='network'' 调用'tracker.startListening();'即使启用了 WiFi的主要内容,如果未能解决你的问题,请参考以下文章