Android忽略了清单权限

时间:2015-12-31 16:51:13

标签: android android-manifest

这是我的清单文件:

Subject

所以我从android studio运行应用程序并获取:

 <?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 6的Nexus 5作为测试设备,Android项目SDK设置为23

2 个答案:

答案 0 :(得分:2)

我认为你正在使用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 :(得分:1)

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

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

要了解有关运行时权限的更多信息,包括代码示例,请查看Requesting Permissions at Run Time文档。