获取'未启用提供者| 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的主要内容,如果未能解决你的问题,请参考以下文章

滑过和拆分视图未启用

Springboot未授权访问

如何为你的WWW站点启用HTTPS?

IBM Worklight 6.0.0.1 - 点击通知时未打开启用推送的应用程序

handsontable如何如何启用验证器

网络连接已关闭,但位置提供者是 NetworkProvider