1.添加权限到AndroidManifest.xml
文件
<manifest ...>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
...
</manifest>
2.创建一个LocationManager
实例并请求位置更新
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity implements LocationListener {
private LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
// 请求位置更新
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}
}
@Override
public void onLocationChanged(Location location) {
// 处理位置更新的事件
double latitude = location.getLatitude();
double longitude = location.getLongitude();
// 使用经纬度进行其他操作
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// GPS 状态变化时触发
}
@Override
public void onProviderEnabled(String provider) {
// GPS 开启时触发
}
@Override
public void onProviderDisabled(String provider) {
// GPS 关闭时触发
}
}
上述代码中,我们使用了LocationManager
类来获取设备的位置信息。通过调用 requestLocationUpdates()
方法请求位置更新,并指定监听器,以便在位置发生变化时得到通知。在 onLocationChanged()
方法中,我们可以处理新的位置信息。从 Location 对象中获取经度和纬度,并进行其他操作。需要注意的是,为了使用 LocationManager
类,我们需要在 AndroidManifest.xml
文件中添加相应的权限。在示例代码中,我们添加了ACCESS_COARSE_LOCATION
和 ACCESS_FINE_LOCATION
权限。当然,根据不同的需求,还可以调整请求位置更新的时间间隔等参数。比如,可以指定最小时间间隔或最小距离间隔,在这些条件满足时才会接收到位置更新的通知。详细内容可以查看官方文档。