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

Я пытаюсь получить доступ к местоположению. Я пробовал с обоими 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-native-cli: 2.0.1
react-native: 0.62.2

реагировать-родное-сообщество/геолокация: ^ 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);

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

реагирующая служба геолокации: ^ 5.0.0

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

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


person Prajna    schedule 02.09.2020    source источник
comment
можете ли вы поделиться всем кодом для Geolocation.getCurrentPosition (и всей его частью, включая импорт   -  person Gaurav Roy    schedule 02.09.2020
comment
@GauravRoy Я добавил код, пожалуйста, проверьте   -  person Prajna    schedule 02.09.2020


Ответы (1)


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

import com.agontuk.RNFusedLocation.RNFusedLocationPackage;

// добавляем новый RNFusedLocationPackage() в

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

        );
    }
person Gaurav Roy    schedule 02.09.2020
comment
Уже включены вышеуказанные строки, но ручная привязка не требуется для версии 0.60 и выше. Во всяком случае, у меня это не сработало. - person Prajna; 02.09.2020
comment
о, вы сделали новую сборку и попробовали ее, верно? - person Gaurav Roy; 02.09.2020
comment
да, я тоже пробовал все варианты, доступные в Интернете :( - person Prajna; 02.09.2020
comment
очень странный случай, тогда, если вы пробовали все, я предлагаю поднять вопрос в их репозитории github. - person Gaurav Roy; 02.09.2020
comment
да, это выглядит правильно, код не проблема, вероятно, это с нативными модулями библиотеки - person Gaurav Roy; 02.09.2020