Android 6.0权限分:普通权限和运行时权限
对于普通权限不用向用户申请只需要在manifest声明,运行时权限是涉及到用户隐私需要手动向用户申请不然会出现奔溃问题
public class MainActivity extends Activity {    public final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 123;    //添加多个权限    public String[] permissions = new String[]{Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        if (!hasPermission(this)) {            requestPermissions(permissions, MY_PERMISSIONS_REQUEST_READ_CONTACTS);        } else {            //用户已经授权或者版本在6.0以下        }    }    /**  * 6.0获取权限  *  * @return  */  public boolean hasPermission(Context mContext) {        boolean hasPermission = true;        if (Build.VERSION.SDK_INT >= 23) {            for (int i = 0; i < permissions.length; i++) {                if (ContextCompat.checkSelfPermission(mContext, permissions[i]) != PackageManager.PERMISSION_GRANTED) {//判断用户是否对添加的权限授权                    //用户没有授权                    hasPermission = false;                    break;                }            }        } else {            hasPermission = true;        }        return hasPermission;    }    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        boolean isOpen = true;        switch (requestCode) {            case MY_PERMISSIONS_REQUEST_READ_CONTACTS:                for (int i = 0; i < grantResults.length; i++) {                    if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {//判断添加的权限用户是否授权                        isOpen = false;                        break;                    }                }                if (isOpen) {                    // Android 6.0 用户已经授权 执行授权之后的操作                } else {                    // 执行用户没有授权的操作                }                break;            default:                super.onRequestPermissionsResult(requestCode, permissions, grantResults);        }    }}

更多相关文章

  1. Android(安卓)6.0权限获取方式-shouldShowRequestPermissionRati
  2. Android中6.0及以上悬浮窗申请权限
  3. SpyEye on Android
  4. 如何让手机横竖屏切换不重走Activity生命周期
  5. android去权限反编译,签名,zipalign优化
  6. selinux mode DAC and MAC
  7. Android适配概要
  8. Android(安卓)如何避免运行时奔溃
  9. android 6.0 权限崩溃分析:android.system.ErrnoException: statv

随机推荐

  1. android 想要弹出另外界面操作步骤
  2. Android(安卓)Studio不能用adb
  3. Android(安卓)Handler揭秘(三)
  4. Android(安卓)触摸OnTouchListener没有响
  5. 牛人博客:Android从入门到提高
  6. Android(安卓)豆知识
  7. 8 Android平台开发-WIFI 驱动移植 -- 详
  8. Android下Dialog及Activity屏蔽Home键详
  9. Android(安卓)3D与JNI结合的小例子
  10. Android(安卓)如何使用log4j及注意事项