Android 无法使用仿真AOR获取我的位置

Android 无法使用仿真AOR获取我的位置,android,google-maps,Android,Google Maps,我正在尝试开发一个谷歌地图应用程序 演示应用程序在真实设备上运行良好,但在模拟器上失败 logcat输出如下所示: java.lang.RuntimeException: Unable to start activity ComponentInfo{il.co.talkie.mapdemo/il.co.talkie.mapdemo.MapDemoActivity}: java.lang.SecurityException: "passive" location provider requires

我正在尝试开发一个谷歌地图应用程序

演示应用程序在真实设备上运行良好,但在模拟器上失败

logcat输出如下所示:

java.lang.RuntimeException: Unable to start activity ComponentInfo{il.co.talkie.mapdemo/il.co.talkie.mapdemo.MapDemoActivity}: java.lang.SecurityException: "passive" location provider requires ACCESS_FINE_LOCATION permission.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
 Caused by: java.lang.SecurityException: "passive" location provider requires ACCESS_FINE_LOCATION permission.
        at android.os.Parcel.readException(Parcel.java:1599)
        at android.os.Parcel.readException(Parcel.java:1552)
        at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:606)
        at android.location.LocationManager.requestLocationUpdates(LocationManager.java:880)
        at android.location.LocationManager.requestLocationUpdates(LocationManager.java:464)
        at il.co.talkie.mapdemo.MapDemoActivity.getMyLocation(MapDemoActivity.java:170)
        at il.co.talkie.mapdemo.MapDemoActivity.onCreate(MapDemoActivity.java:106)
        at android.app.Activity.performCreate(Activity.java:6237)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
MapDemoActivity的第170行是

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,0, this);
清单文件具有这些权限,否则它将无法在实际设备上工作,如下所示:

Manifest.XML

我想使用模拟器获取我的位置-它显示谷歌地图,并找到我提供的地址的位置,但它拒绝获取我的位置-因此我无法正确计算距离

怎么了? 我使用的模拟器是为API 23和目标Google API创建的。
欢迎提供任何帮助。

如果您在Android M上使用emulator,您需要请求用户的许可,不管您的清单如何。看


您可以查阅文章/教程,例如使用新系统或仅针对较低的API由于此问题而发生错误:

原因:java.lang.SecurityException:被动位置提供程序需要访问\u FINE\u位置权限

只需向应用程序清单添加新权限:


使用权限安卓:name=android.permission.ACCESS\u FINE\u LOCATION/>

如上问题所述,权限已在清单中,否则在可能<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="il.co.talkie.mapdemo" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <permission android:name="com.javapapers.currentlocationinmap.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/google_maps_key" /> <activity android:name=".MapDemoActivity" android:label="@string/title_activity_map_demo" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>