Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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中使用wifi获取当前位置_Android_Eclipse_Location - Fatal编程技术网

仅在android中使用wifi获取当前位置

仅在android中使用wifi获取当前位置,android,eclipse,location,Android,Eclipse,Location,当我使用GpsProvider时,我得到了当前位置。但只有当我使用wifi获得wifi网络时,我才需要得到当前位置。我使用NetworkProvider来实现它,但我不能 下面是我使用的代码 public static void requestSingleUpdate(final Context context, final LocationCallback callback) { final LocationManager locationManager =

当我使用GpsProvider时,我得到了当前位置。但只有当我使用wifi获得wifi网络时,我才需要得到当前位置。我使用NetworkProvider来实现它,但我不能
下面是我使用的代码

    public static void requestSingleUpdate(final Context context,
        final LocationCallback callback) {

    final LocationManager locationManager = (LocationManager) context
            .getSystemService(Context.LOCATION_SERVICE);

    boolean isNetworkEnabled = locationManager
            .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    if (isNetworkEnabled) {
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_COARSE);

        locationManager.requestSingleUpdate(criteria,
                new LocationListener() {
                    @Override
                    public void onLocationChanged(Location location) {
                        callback.onNewLocationAvailable(location);
                    }

                    @Override
                    public void onStatusChanged(String provider,
                            int status, Bundle extras) {
                    }

                    @Override
                    public void onProviderEnabled(String provider) {
                    }

                    @Override
                    public void onProviderDisabled(String provider) {
                    }
                }, null);}  
我的许可如下

 <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <!-- Network State Permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission     android:name="android.permission.ACCESS_COARSE_LOCATION"/>

\

谢谢:)

检查WiFi是否已启用:-

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()){
//wifi is enabled
}

ConnectivityManager

类,该类回答有关网络连接状态的查询。信息技术 当网络连接发生变化时,还通知应用程序。得到 通过调用 getSystemService(Context.CONNECTIVITY\u服务)

键入无线网络

无线数据连接。激活时,所有数据通信都将使用此 默认情况下,网络类型的接口(它具有默认路由)

您可以使用下面的逻辑

ConnectivityManager connManagerObj = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo WifiObj = connManagerObj.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (WifiObj.isConnected()) {
    //Add your Code
}
将其添加到清单文件中

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />


请参考此链接,了解您的即时重播,但当我检查网络启用时,它始终返回false。我获得的wifi连接为true,但我没有获得位置;即使连接了wifi,我也得到了IsNetworkable false。@Sijojojose在这里查看一下,谢谢您的关注。