Android忽略清单权限[重复]

Posted

技术标签:

【中文标题】Android忽略清单权限[重复]【英文标题】:Android ignoring manifest permissions [duplicate] 【发布时间】:2016-04-05 14:14:30 【问题描述】:

这是我的清单文件:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.steff.barometer" >

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

所以我从 android studio 运行应用程序并得到:

java.lang.SecurityException: Client must have ACCESS_FINE_LOCATION permission to request PRIORITY_HIGH_ACCURACY locations.

我已经从我的设备中完全删除了该应用程序,还清理了我的项目并尝试重新部署,但没有任何效果...

我使用带有 Android 6 的 Nexus 5 作为测试设备,Android 项目 SDK 设置为 23

【问题讨论】:

您用于测试运行的设备是什么版本的Android? 尝试添加此权限,&lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt; 您正在尝试在没有互联网权限的情况下定位一个地方? @Tanis.7x Nexus 5 与 Android 6.0,android sdk 23 【参考方案1】:

我认为您为此使用了 marshmellow(API 23),您需要为 access_fine_location 权限请求运行时权限。 请按以下方式进行:

context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED &&
                context.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
                        == PackageManager.PERMISSION_GRANTED)

  @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                           int[] grantResults) 
        if (requestCode == MY_PERMISSIONS_REQUEST_CODE) 
            Log.v("Toadways", "onRequestPermissionsResult");
            isPermissionRequest = false;
         //your code

欲了解更多信息,请查看以下链接:

http://developer.android.com/training/permissions/requesting.html

希望这会有所帮助。

【讨论】:

较早的答案和更完整的。 +1【参考方案2】:

从 Android 6.0(Marshmallow,API 级别 23)开始,应用程序必须在运行时向用户询问权限。

您仍然需要在清单中请求权限,但安装应用程序时不再自动授予权限。

要详细了解运行时权限(包括代码示例),请查看Requesting Permissions at Run Time 文档。

【讨论】:

以上是关于Android忽略清单权限[重复]的主要内容,如果未能解决你的问题,请参考以下文章

清单的权限在 Android 6 中不起作用

即使在清单中设置了权限,权限异常[重复]

我的 Android 应用程序请求我没有要求的位置权限 [重复]

日历提供者权限错误 [重复]

Android 訪问权限清单

清单中的 Android 用户权限