【问题标题】:LocationRequest constructor is marked as internalLocationRequest 构造函数被标记为内部
【发布时间】:2018-09-04 10:43:33
【问题描述】:

我正在尝试使用 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(),那么正确的方法是什么?

【问题讨论】:

    标签: java android location


    【解决方案1】:

    使用静态方法LocationRequest create ()

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

    【讨论】:

    • 我猜在文档中提到但不清楚。如果你看到 Source code 那么你会看到构造函数是 hide 。而且构造函数在文档中也没有提到,所以create() 是最终的解决方案。
    • @ADM 它在哪里提到?该文档说:“创建位置请求并设置参数,如此代码示例中所示:受保护的 void createLocationRequest() { LocationRequest mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(10000); mLocationRequest.setFastestInterval(5000); mLocationRequest。 setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); } 如果你这样做,你会收到恼人的警告。文档大部分时间都是真正的废话。
    • 是的,您对文档的看法是正确的。但是查找的是 LocationRequest class 。并且没有列出公共构造函数。而且,如果您浏览源代码,您会看到构造函数是 hide 。关于 Doc 我不能说太多,但对我来说这似乎有点误导。
    【解决方案2】:

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

    LocationRequest request = LocationRequest.create();
    

    【讨论】:

      【解决方案3】:

      在科特林中:

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

      然后使用like:

      fusedLocationProviderClient.requestLocationUpdates(
              locationRequestSettings,
              YourLocationCallback,
              null
      )
      

      【讨论】:

        猜你喜欢
        • 2018-09-18
        • 2021-08-13
        • 1970-01-01
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        • 2011-09-18
        相关资源
        最近更新 更多