检查LocationManager.NETWORK_PROVIDER是否可用的方法如下:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
// NETWORK_PROVIDER可用
} else {
// NETWORK_PROVIDER不可用
}
完整的示例代码如下:
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
// NETWORK_PROVIDER可用
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 更新位置信息
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Toast.makeText(MainActivity.this, "Latitude: " + latitude + ", Longitude: " + longitude, Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
});
} else {
// NETWORK_PROVIDER不可用
Toast.makeText(MainActivity.this, "NETWORK_PROVIDER不可用", Toast.LENGTH_SHORT).show();
}
}
}
这段代码首先检查NETWORK_PROVIDER是否可用,如果可用,则使用requestLocationUpdates()方法请求位置更新。如果NETWORK_PROVIDER不可用,则会弹出一个Toast提示。
领取专属 10元无门槛券
手把手带您无忧上云