Как активировать GPS Icon в реагировать на родной? - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу, чтобы значок GPS отображался в строке состояния при открытии приложения или экрана, содержащего карту, поэтому я добавляю функцию, которая запрашивает у пользователя в первый раз разрешение на доступ, и она работает очень хорошо, и я могу получить лат / Длинно, но значок GPS «Местоположение» не активирован, так как я могу заставить приложение активировать этот значок?

GPS

вот моя функция запроса разрешения

 async requestLocationPermission() {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          title: 'App Location Permission',
          message: 'App needs access to your Location ',
          buttonNeutral: 'Ask Me Later',
          buttonNegative: 'Cancel',
          buttonPositive: 'OK',
        },
      );
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        this.getLocation();
      } else {
        this.setState({next: false});
      }
    } catch (err) {
      console.log('err ', err);
    }
  }




getLocation = async () => {
    const {companyLocation, Domain} = this.props.navigation.state.params;
    Geolocation.getCurrentPosition(
      position => {
        this.setState(
          {
            mapData: {
              latitude: position.coords.latitude,
              longitude: position.coords.longitude,
              latitudeDelta: 0.015,
              longitudeDelta: 0.0121,
            },
            markerData: {
              latitude: position.coords.latitude,
              longitude: position.coords.longitude,
              latitudeDelta: 0.015,
              longitudeDelta: 0.0121,
            },

            error: null,
          },
          () => {
            let {
              latitudeDelta,
              longitudeDelta,
              ...userLocation
            } = this.state.mapData;

            let howFar = Math.round(haversine(userLocation, companyLocation));
            howFar > Domain
              ? (alert('we not work in your area.'),
                this.setState({next: false}))
              : null;
          },
        );
      },
      error => this.setState({error: error.message}),
    );
    this.watchID = Geolocation.watchPosition(position => {
      const latitude = position.coords.latitude;
      const longitude = position.coords.longitude;
      this.setState({
      mapData: {
        latitude: latitude,
        longitude: longitude,
        latitudeDelta: 0.015,
        longitudeDelta: 0.0121,
      },
    });
    });
  };
...