- 在清单文件加入权限:
- 在Activity中写requestPermissions() 方法来请求权限,系统会弹出需要请求权限的对话框,然后在OnCreate方法中调用此方法。
private static final int PERMISSION_REQUEST_COARSE_LOCATION = 1;
private void requestVideoPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// Android M Permission check
if (checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},PERMISSION_REQUEST_COARSE_LOCATION);
}
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION},PERMISSION_REQUEST_COARSE_LOCATION);
}
}
}
- 重写Activity的onRequestPermissionsResult()方法,接收权限是否请求的请求状态 示例代码如下:
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
// TODO Auto-generated method stub
switch (requestCode) {
case PERMISSION_REQUEST_COARSE_LOCATION:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// TODO request success
}
break;
}
另外:
检查一下自己的targetSdkVersion版本,如果你的targetSdkVersion大于23(6.0),那么你就要加第2、3步骤。小于23时可以不用添加。
在Android 6.0上对应用权限进行授权是发生在应用运行时,而不是在安装时。同时用户也可以在应用程序设置中撤销对应用的权限授权。因此当要获取敏感权限(如相机、联系人)时最好先检查用户是否授予了改权限,如果没授予给出提示框提醒用户授予



