0

I tested this code with three phones. It works with two of them, but doesn't work with the third one, Huawei y9 2019. What's the problem? , And Why is it show (?) and (*) sign ??

My code is:

mFusedLocationProviderClient = new FusedLocationProviderClient(this);
    mLocationRequest = LocationRequest.create();
    mLocationRequest.setInterval(1000);
    mLocationRequest.setFastestInterval(500);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_LOW_POWER);


    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

        return;
    }

    mFusedLocationProviderClient.requestLocationUpdates(
            mLocationRequest,
            new LocationCallback() {
                @Override
                public void onLocationResult(LocationResult locationResult) {


                    if(locationResult != null){
                        Log.i("Your_Location",locationResult.getLastLocation().toString()+"\n\nrequestLocationUpdates() isCall");
                        textView.setText(locationResult.getLastLocation().toString());
                    }
                    else{
                        Log.i("Your_Location"," requestLocationUpdates() isCall Please Give Permission and On Location");
                        textView.setText("Please Give Permission and On Location");
                    }
                    super.onLocationResult(locationResult);


                }
            },
            getMainLooper()


    );

enter image description here

Rafat97
  • 25
  • 2
  • 8
  • Technically, the output is conforming to the `toString` contract of the `Location` class - different implementations produce different results. Why not use `Location.convert` to get precise output. –  Dec 25 '18 at 15:43
  • But , Samsung it shows perfect value, not * and ? sign. – Rafat97 Dec 26 '18 at 06:39

1 Answers1

0

I have checked with Huawei previous version and others phone it's working fine for me. But i have not Huawei y9 2019. So you may check with this code.

//Request location through FusedLocationApi

public void registerRequestUpdate(final LocationListener listener) {
        mLocationRequest = LocationRequest.create();
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        localStorageInterval=sm.getLocalStorageInterval().get("localStorageInterval")*1000;
        mLocationRequest.setInterval(NOTIFY_INTERVAL/2); // every second


        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                try {
                    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, listener);
                } catch (SecurityException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                    if (!isGoogleApiClientConnected()) {
                        mGoogleApiClient.connect();
                    }

                    registerRequestUpdate(listener);
                 //   saveLocationAndSync();

                }
            }
        }, NOTIFY_INTERVAL);
    }

// get updated location from this method

 @Override
    public void onLocationChanged(Location location) {
        try {
              string lat = location.getLatitude(); 
              string long = location.getLongitude();

            }
        }catch (Exception ex){
            //exception
        }
    }
Majedur
  • 3,074
  • 1
  • 30
  • 43