android - 使用 React-Native 在 Android 模拟器上的位置请求超时

标签 android android-emulator geolocation react-native

我正在使用 react-native 构建我的第一个 Android 应用程序。 我想要做的是显示我当前的位置。但它似乎不适用于我的模拟器。相反,我在控制台中收到“位置请求超时”错误。这是我的 idex.android.js 文件中的代码示例:

initGeoloc() {
   navigator.geolocation.getCurrentPosition(
     (position) => { 
       console.log(JSON.stringify(position));
     }
   );
}

render() {
   this.initGeoloc();
   ... some more code and the view

代码非常简单,所以我不认为错误来自这里。 我在我的 AndroidManifest.xml 文件中添加了这些权限(ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <application
       android:allowBackup="true"
       android:label="@string/app_name"
       android:icon="@mipmap/ic_launcher"
       android:theme="@style/AppTheme">
       <activity
         android:name=".MainActivity"
         android:label="@string/app_name"
         android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
       </activity>
       <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
       <uses-library android:name="com.google.android.maps" />
       <meta-data android:name="com.google.android.geo.API_KEY" android:value="mykey"/>
</application>

我也没有发现任何问题,所以我认为问题出在 Android 模拟器上。我使用 Android Virtual Device Manager 创建一个 Nexus 5,Google APIs (Google Inc.) - API Level 23 虚拟设备。地理定位已在设备上激活,但我在开发人员工具或配置中没有看到任何地理定位工具。所以错误可能来自这里。 虚拟设备不返回任何位置。

我该如何解决这个问题?

最佳答案

设置为enableHighAccuracy false,问题就解决了

navigator.geolocation.getCurrentPosition((position) => {
  console.log(position);
}, error => console.error(error), { enableHighAccuracy: false, timeout: 20000, maximumAge: 1000 });

关于android - 使用 React-Native 在 Android 模拟器上的位置请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297535/

相关文章:

android - 英特尔在 Windows 操作系统上与 AMD 等效的 HAXM

android - 无法在 Android Linux 模拟器中的 SDcard 下添加文件

android - XML 中查看动画的引用自定义插值器

android: Installation Error:Unknown Failure-while running an apk file in 中

android - 使用 sencha touch 2 开发的应用程序的推送通知

java - Android 中 GPS_PROVIDER 或 NETWORK_PROVIDER 的位置不一致

java - 如何实现位置搜索(和按位置搜索项目)?

ruby - ObjectMapper : Find geo places within a certain square, 按邻近度排序

android - 网络应用引擎/谷歌插件 : creating an backend for your Android app

android - 使用 AppCompat 主题时 SpannableString 不起作用