📜  fusedLocationClient.removeLocationUpdates - CSS (1)

📅  最后修改于: 2023-12-03 15:00:51.902000             🧑  作者: Mango

fusedLocationClient.removeLocationUpdates() - CSS

fusedLocationClient.removeLocationUpdates() 是一个用于移除位置更新的方法,常用于停止位置更新以节省设备电量。本方法是 Android Fused Location 的一部分,且需要 Google Play Services。

语法
public void removeLocationUpdates (LocationCallback callback)
参数
用法示例

以下示例以 Kotlin 语言为例。

import com.google.android.gms.location.LocationServices

class MainActivity : AppCompatActivity() {

    private lateinit var fusedLocationClient: FusedLocationProviderClient
    private lateinit var locationCallback: LocationCallback

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
        locationCallback = object : LocationCallback() {
            override fun onLocationResult(locationResult: LocationResult?) {
                // 处理位置更新信息
            }
        }
    }

    override fun onResume() {
        super.onResume()
        startLocationUpdates()
    }

    override fun onPause() {
        super.onPause()
        stopLocationUpdates()
    }

    private fun startLocationUpdates() {
        val locationRequest = LocationRequest.create()
            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
            .setInterval(10000)
            .setFastestInterval(5000)
        fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null)
    }

    private fun stopLocationUpdates() {
        fusedLocationClient.removeLocationUpdates(locationCallback)
    }

}

以上示例创建了一个 LocationCallback 对象作为位置更新的回调方法,在 onResume() 方法中启动位置更新,在 onPause() 方法中停止位置更新。

注意事项
  • 本方法需要 ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION 权限。
  • 本方法需要 Google Play Services。请在应用的 build.gradle 中添加以下依赖:
dependencies {
    implementation 'com.google.android.gms:play-services-location:17.0.0'
}