java - Android GoogleMaps 在某些设备上不工作显示 java.lang.SecurityException : need INSTALL_LOCATION_PROVIDER permission

标签 java android google-maps

我试图用 GoogleMap 制作一个 map 应用程序来获取位置坐标和反向地理编码。我试过在联想A7000plus上运行,运行正常,没有任何问题。

不知何故,我用相同的 Android Marshmallow 测试我的应用程序到一些小米, map 根本不工作。只有这样的错误报告:

07-28 14:04:01.144 19465-19465/? E/NetworkLocationProvider: Exception
                                                            java.lang.SecurityException: need INSTALL_LOCATION_PROVIDER permission, or UID of a currently bound location provider
                                                                at android.os.Parcel.readException(Parcel.java:1620)
                                                                at android.os.Parcel.readException(Parcel.java:1573)
                                                                at android.location.ILocationManager$Stub$Proxy.reportLocation(ILocationManager.java:1281)
                                                                at com.android.location.provider.LocationProviderBase.reportLocation(LocationProviderBase.java:136)
                                                                at com.amap.android.location.v.handleMessage(Unknown Source)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5441)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
07-28 14:04:01.164 19465-19465/? E/NetworkLocationProvider: Exception
                                                            java.lang.SecurityException: need INSTALL_LOCATION_PROVIDER permission, or UID of a currently bound location provider
                                                                at android.os.Parcel.readException(Parcel.java:1620)
                                                                at android.os.Parcel.readException(Parcel.java:1573)
                                                                at android.location.ILocationManager$Stub$Proxy.reportLocation(ILocationManager.java:1281)
                                                                at com.android.location.provider.LocationProviderBase.reportLocation(LocationProviderBase.java:136)
                                                                at com.amap.android.location.v.handleMessage(Unknown Source)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5441)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

此外,这是我实现的 list

<uses-sdk android:minSdkVersion="14" />

<permission
    android:name="com.myapps.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.myapps.permission.MAPS_RECEIVE" />
<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" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

你能帮我解决这个问题吗?

**编辑:** 我已将运行时权限放在我的代码中,因为我使用的所有手机(包括联想 A7000)都是 Marshmallow。但是不知何故它不会在具有相同版本Android的小米手机上工作

最佳答案

从 API 23 您需要在运行时请求危险权限检查此链接如何在运行时请求危险 https://developer.android.com/training/permissions/requesting.html或者在您的 build.gradle 文件中将您的目标 SDK 级别更改为 22

关于java - Android GoogleMaps 在某些设备上不工作显示 java.lang.SecurityException : need INSTALL_LOCATION_PROVIDER permission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45367088/

相关文章:

java - 如何仅在使用android中的textwatcher从edittext完成编辑后才将值添加到hashmap

google-maps - 条款和条件谷歌地图 : Can I store lat/lng and address components?

java - 如何返回没有多余字符串的字符串

java - 在 Java 中将 XML 转换为 JSON 的最快方法

java - Android 使用位置管理器获取纬度和经度

javascript - 在谷歌地图中设置平移边界等于图像叠加

javascript - 谷歌地图静态api url长度超过2048个字符有什么解决办法吗?目的是另存为图像

java - 在 cassandra 中创建表的关键空间名称问题

java - 如何创建填充并返回现有或新集合的通用方法?

java - 以编程方式退出 Android 应用程序而不完成()