LocationRequest构造函数标记为内部

时间:2018-03-26 10:09:01

标签: java android location

我尝试使用com.google.android.gms:play-services-location:12.0.0在我的Android应用中设置位置更新,但我收到以下错误:

  

LocationRequest构造函数标记为内部,不应从应用程序访问

我的位置更新请求如下所示:

locationClient.requestLocationUpdates(
    new LocationRequest()
        .setInterval(5000)
        .setFastestInterval(1000)
        .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY),
    locationCallback,
    null
);

我已按照docsexample进行操作,它们也是这样做的。如果我不应该拨打new LocationRequest(),那么正确的做法是什么?

3 个答案:

答案 0 :(得分:62)

使用静态方法LocationRequest create ()

 LocationRequest locationRequest = LocationRequest.create();
 locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
 locationRequest.setInterval(5000);
 locationRequest.setFastestInterval(1000);

答案 1 :(得分:12)

LocationRequest 初始化过程已更改为最新的Google Play服务依赖项(> 12.0.0)。现在您可以使用其create()方法来初始化它。 e.g。

import pandas as pd
n_segments = 3
cylinder.points["segment"] = pd.cut(
    cylinder.points["phi"],
    n_segments, 
    labels=range(n_segments))

答案 2 :(得分:0)

在科特林:

 private val locationRequestSettings = LocationRequest.create().apply {
        fastestInterval = 1000
        interval = 1000
        priority = LocationRequest.PRIORITY_HIGH_ACCURACY
        smallestDisplacement = 1.0f
}

然后使用:

fusedLocationProviderClient.requestLocationUpdates(
        locationRequestSettings,
        YourLocationCallback,
        null
)