一、什么是LBS?
LBS是Location Based Service 的简称,即基于位置的服务,基于这种服务的应用的一种统称。
二、为什么要使用LBS?
LBS是一种被手机发扬光大的服务,因为手机的移动性,而产生了很多基于这种服务的应用,通过他可以有包括地图导航,周边信息,本地服务,旅游等多种应用。
三、如何使用?
申请权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
主应用代码
public class MainActivity extends AppCompatActivity {
private LocationManager locationManager;
private TextView textView;
private String provider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.main_text_view);
//获取位置管理器
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//获取所有可用的位置提供器
List<String> providerList = locationManager.getProviders(true);
if (providerList.contains(LocationManager.GPS_PROVIDER)) {
provider = LocationManager.GPS_PROVIDER;
} else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {
provider = LocationManager.NETWORK_PROVIDER;
} else {
//没有提供器可用时弹出提示
Toast.makeText(MainActivity.this, "No location provider to be use", Toast.LENGTH_SHORT).show();
return;
}
Location location = locationManager.getLastKnownLocation(provider);
if(location != null){
showLocation(location);
}
locationManager.requestLocationUpdates(provider,5000,1,listener);
}
private void showLocation(Location location) {
String currentPosition = "latitude is " + location.getLatitude() + "\n" + "longitude is " + location.getLongitude();
textView.setText(currentPosition);
}
LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
//更新设备位置信息
showLocation(location);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
}
使用方法和传感器类似:
即获取位置管理器LocationManager -> 注册位置监听器 -> 通过GPS或网络 获取位置信息Location -> 解除注册。
其他应用参照各应用的接口文档