<Android>--6.0版本获取运行时的权限方法

来源:互联网 发布:mysql创建索引 编辑:程序博客网 时间:2024/04/29 08:49

介绍

在6.0版本中,安卓让获取敏感权限的方法,不单单在manifest中添加权限那么简单了需要在自己的代码中添加一些权限才行,就拿sdCard来举例

方法

1.判断时候有要用的权限
 public boolean hasPermission(String... permissions){        for (String permission:permissions){            if (ContextCompat.checkSelfPermission(this,permission)!=PackageManager.PERMISSION_GRANTED){                return false;            }        }        return true;    }
2.添加需求权限
public void requestPermission(int code,String... permissions){        ActivityCompat.requestPermissions(this,permissions,code);    }
3.全部代码,是从SDCard相册中将选择的相片添加到自己的imageview中
package com.sdp.panda.imageapp;import android.Manifest;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.ImageFormat;import android.net.Uri;import android.os.Build;import android.os.Bundle;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v4.content.PermissionChecker;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;import java.io.IOException;import java.security.Permission;/** * Created by 80926 on 2016/10/27. */public class LocationImageActivity extends Activity{    private int targetSdkVersion;    private Button button;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_location);        targetSdkVersion = this.getApplicationInfo().targetSdkVersion;        button = (Button) findViewById(R.id.btn_show);        iv = (ImageView) findViewById(R.id.iv_xiangce);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent();                intent.setType("image/*");                intent.setAction(Intent.ACTION_PICK);                startActivityForResult(intent,1);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == 1 && resultCode == RESULT_OK) {            Uri imageUri = data.getData();            Log.e("sdp", "onActivityResult:" + imageUri.toString());            if (hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)){                Bitmap bitmap = LruCacheUtils.getInstance().decodeSampleBitmapFromUri(LocationImageActivity.this, imageUri, 900, 900);                    iv.setImageBitmap(bitmap);            }else {                requestPermission(1,Manifest.permission.WRITE_EXTERNAL_STORAGE);            }        }    }    public boolean hasPermission(String... permissions){        for (String permission:permissions){            if (ContextCompat.checkSelfPermission(this,permission)!=PackageManager.PERMISSION_GRANTED){                return false;            }        }        return true;    }    public void requestPermission(int code,String... permissions){        ActivityCompat.requestPermissions(this,permissions,code);    }}
0 0
原创粉丝点击