ไม่สามารถเข้าถึงตำแหน่งในอุปกรณ์ 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 ของฉัน

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
กรณีที่แปลกมาก หากคุณลองทั้งหมดแล้ว ฉันขอแนะนำให้แจ้งปัญหากับ repo github ของพวกเขา - person Gaurav Roy; 02.09.2020
comment
ใช่ มันดูถูกต้อง โค้ดนั้นไม่มีปัญหา อาจเป็นเพราะโมดูลดั้งเดิมของไลบรารี - person Gaurav Roy; 02.09.2020