Невозможно получить доступ к местоположению на устройстве Android (доступ запрещен, код ошибки 3, поставщик местоположения недоступен)

#react-native #geolocation #react-native-android

#геолокация #react-native

Вопрос:

Я пытаюсь получить доступ к местоположению. Я пробовал с обоими https://www.npmjs.com/package/react-native-geolocation-service и https://www.npmjs.com/package/@react-native-community/geolocation

Как это можно решить? Что-то не так с настройкой? или что-то не так с моим кодом? Хотя я много искал об этом и рассмотрел все решения, которые не могли помочь. Также пытался связать вручную, хотя автоматическое связывание включено в этой версии. Но не смог решить проблему. Есть ли какой-либо другой модуль для извлечения местоположения?

Я включил следующие строки в AndroidManifest.xml

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  

Моя конфигурация React

 react-native-cli: 2.0.1
react-native: 0.62.2
  

react-native-community / geolocation: ^ 2.0.2

Если я включу свое местоположение вручную на мобильном телефоне, оно получит местоположение. И возможность получить местоположение в эмуляторе Android.

 import React, { Component } from 'react';
import { View, PermissionsAndroid } from 'react-native';
import {
    withTheme,
    Appbar,
} from 'react-native-paper';
import Geolocation from '@react-native-community/geolocation';
// import Geolocation from 'react-native-geolocation-service';
import RNAndroidLocationEnabler from 'react-native-android-location-enabler';

class AddBill extends Component {
    state = {
        initialposition: [],
        latitude: '',
        logitude: '',
    }

    async componentDidMount() {
        let granted = await PermissionsAndroid.request(
            PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
        );
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
            console.log("test")
            let config = {
                authorizationLevel: "auto"
            }
            Geolocation.setRNConfiguration(config);
            Geolocation.getCurrentPosition(
                (position) => {
                    console.log(position);
                },
                (error) => {
                    console.log(error);
                },
                { enableHighAccuracy: true, timeout: 15000, maximumAge: 110000 }
            );
        } else {
            console.log('Location permission not granted!!!!');
        }
    };

    _back = () => {
        this.props.navigation.goBack()
    }

    render() {

        return (
            <>
                <Appbar.Header>
                    <Appbar.BackAction onPress={this._back} />
                    <Appbar.Content title="New Bill" />
                </Appbar.Header>
                <View></View>
            </>
        );
    }
}

export default withTheme(AddBill);
  

введите описание изображения здесь

react-native-geolocation-service: ^ 5.0.0

Та же ошибка после включения местоположения вручную

введите описание изображения здесь

Комментарии:

1. можете ли вы предоставить полный код для Geolocation.getCurrentPosition (и всю его часть, включая импорт

2. @GauravRoy Я добавил код, пожалуйста, проверьте

Ответ №1:

Попробуйте добавить это в свое основное приложение.java, а затем создайте сборку и попробуйте

 import com.agontuk.RNFusedLocation.RNFusedLocationPackage;
  

// добавить новый RNFusedLocationPackage() в

 @override
protected List getPackages() {
return Arrays.asList(
new RNFusedLocationPackage()

        );
    }
  

Комментарии:

1. Уже включены вышеуказанные строки, но ручная привязка не требуется для 0.60 и выше справа.. В любом случае, у меня это не сработало

2. о, вы сделали новую сборку и попробовали это правильно?

3. да, я тоже перепробовал все варианты, доступные в Интернете:(

4. очень странный случай, тогда, если вы перепробовали все, я предлагаю поднять проблему в их репозитории github.

5. да, это выглядит правильно, код не проблема, вероятно, с собственными модулями библиотеки