Места пользователя не отображаются при первом запуске фрагмента - PullRequest
0 голосов
/ 11 октября 2018

в моем приложении у меня есть 2 фрагмента с именем Home и account. В фрагменте Home я пытаюсь получить пользователя Последнее известное местоположение с помощью API-интерфейса Fused location. Проблема в том, что когда приложение запускается впервые, оно не получает местоположение пользователя и когда я переключаюсь.между фрагментами и возвращением к Фрагменту дома он показывает местоположение.Вот мой фрагмент кода Home.

Home.java

public class Home extends Fragment implements GoogleApiClient.OnConnectionFailedListener,GoogleApiClient.ConnectionCallbacks,
                                            com.google.android.gms.location.LocationListener{

TextView fragText;
GoogleApiClient mGoogleApiClient;
LocationRequest mLocationRequest;
Location mLocation;

       public Home() {
    // Required empty public constructor
     }

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_home, container, false);

   fragText = view.findViewById(R.id.fragText);

   locationManager = (LocationManager)getContext().getSystemService(getContext().LOCATION_SERVICE);


       mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();

    return view;

     }

   @Override
   public void onStart() {
    super.onStart();

       mGoogleApiClient.connect();
     }



   @Override
   public void onStop() {
    super.onStop();

    if(mGoogleApiClient.isConnected()){

        mGoogleApiClient.disconnect();

    }

  }
@Override
public void onConnected(@Nullable Bundle bundle) {

        mLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);

                if (mLocation != null) {

                   String str1 = hereLocation(mLocation.getLatitude(), mLocation.getLongitude());
                    fragText.setText(str1);



   }

}

  @Override
public void onConnectionSuspended(int i) {

}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}

Пожалуйста, дайте мне знать, что я делаю неправильно в приведенном выше коде.

THANKS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...