仅在android中使用wifi获取当前位置
当我使用GpsProvider时,我得到了当前位置。但只有当我使用wifi获得wifi网络时,我才需要得到当前位置。我使用NetworkProvider来实现它,但我不能仅在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 =
下面是我使用的代码
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在这里查看一下,谢谢您的关注。