Java LocationRequest构造函数标记为内部
我正在尝试使用Java LocationRequest构造函数标记为内部,java,android,location,Java,Android,Location,我正在尝试使用com.google.Android.gms:play services location:12.0.0在我的Android应用程序中设置位置更新,但出现以下错误: LocationRequest构造函数标记为内部,不应从应用程序访问 我的位置更新请求如下所示: locationClient.requestLocationUpdates( new LocationRequest() .setInterval(5000) .setFastest
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
);
我遵循了和,它们以相同的方式进行操作。如果我不应该调用
newlocationrequest()
,那么正确的方法是什么?使用静态方法LocationRequest create()
LocationRequest初始化过程已更改为最新的Google Play服务依赖项(>12.0.0)。现在您可以使用它的方法来初始化它。e、 g
LocationRequest request = LocationRequest.create();
在科特林:
private val locationRequestSettings = LocationRequest.create().apply {
fastestInterval = 1000
interval = 1000
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
smallestDisplacement = 1.0f
}
然后使用类似于:
fusedLocationProviderClient.requestLocationUpdates(
locationRequestSettings,
YourLocationCallback,
null
)
我想在文件中提到了,但不清楚。如果您看到,那么您将看到构造函数是隐藏的。而且在文档中没有提到构造函数,所以
create()
是最终的解决方案。@ADM在哪里提到它?文档说:“创建位置请求并设置参数,如代码示例所示:protectedvoid createLocationRequest(){LocationRequest mlLocationRequest=new LocationRequest();mlLocationRequest.setInterval(10000);mlLocationRequest.setFastTestInterval(5000);mlLocationRequest.setPriority(位置请求。优先级高精度);}如果你这样做,你会得到一个恼人的警告。大多数时候文档都是垃圾。是的,你对文档的看法是正确的。但是查找中的是类。并且没有列出公共构造函数。而且如果你浏览源代码,你会看到构造函数被隐藏。我不能说太多关于文档的内容,但对我来说,它似乎有点神秘我正在阅读。
fusedLocationProviderClient.requestLocationUpdates(
locationRequestSettings,
YourLocationCallback,
null
)