![](/img/trans.png)
[英]Android studio java.lang.SecurityException: need INSTALL_LOCATION_PROVIDER permission
[英]Android GoogleMaps not working on some devices shows java.lang.SecurityException: need INSTALL_LOCATION_PROVIDER permission
我试图使用GoogleMap
制作Map应用程序以获取位置坐标和反向地理编码。 我试图在Lenovo A7000plus中运行它,它运行正常,没有任何问题。
不知何故,我使用相同的Android棉花糖在一些小米上测试了我的应用程序,而地图根本无法正常工作。 只有这样的错误报告:
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)
还有,这是我实现的清单
<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" />
您能帮我解决这个问题吗?
**编辑:**由于我使用的所有手机(包括Lenovo A7000)都是棉花糖,因此我已在代码中添加了运行时权限。 但是以某种方式,它将无法在具有相同版本Android的小米手机中运行
必须访问运行时权限才能访问位置数据。 自Android 6.0发行以来,用户在运行时向应用授予权限。 此链接说明有关运行时权限的信息。
从API 23开始,您需要在运行时请求危险权限,请检查此链接,以了解如何在运行时请求危险权限https://developer.android.com/training/permissions/requesting.html或在build.gradle文件中更改目标SDK级别至22
根据文档, INSTALL_LOCATION_PROVIDER
为
不适用于第三方应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.