(一)。6.0新特性
http://www.cnblogs.com/android-blogs/p/5759904.html
(二)动态权限申请
http://blog.csdn.net/siyemuzi/article/details/53514983
(三 实例)
compile 'pub.devrel:easypermissions:0.3.0'
private void checkSDPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0); } else { new AlertDialog.Builder(this) .setTitle(R.string.title_dia_notice) .setMessage(R.string.msg_permission_sd) .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent settingIntent = new Intent( android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null) ); startActivityForResult(settingIntent, 0); } }) .create().show(); } } else { setUpAppFolder(); } }@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 0 && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { setUpAppFolder(); } else { finish(); } }