代码之家  ›  专栏  ›  技术社区  ›  Aalap Patel

LocationListener在使用gms android的位置请求中设置的间隔之前触发

  •  0
  • Aalap Patel  · 技术社区  · 7 年前

    间隔5 位置更改方法每3秒触发一次 . 我试着改变优先级,但都一样。我在理解它的逻辑时犯了什么错误?提前感谢您的指导。

    mGoogleApiClient = new GoogleApiClient.Builder(getContext())
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
    
    locationRequest = new LocationRequest()
                //tried high accuracy also thinking it might matter with priority but doesn't effect            
                .setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
                .setInterval(5 * 1000);
    

    触发位置请求的方法。

    private void requestLocation() {
        if (Build.VERSION.SDK_INT >= 23) {
            if (getActivity().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
                    getActivity().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
                LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, locationRequest, locationListener);
            else
                LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, locationRequest, locationListener);
    
            Log.d(TAG, "requestLocation: ");
        }
    }
    

    locationListener实例。

     LocationListener locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
    
           //log shows this triggering at every 3 seconds.
            Log.d(TAG, "onLocationChanged: ");
    
            if (mGoogleApiClient.isConnected()) {
                longitude = location.getLongitude();
                latitude = location.getLatitude();
            }
        }
    };
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Stanislav Bondar    7 年前

    PRIORITY_BALANCED_POWER_ACCURACY setFastestInterval(long) 和一个较慢的 setInterval(long) docs