public class MainActivity extends AppCompatActivity { public static final int REQUEST_CODE=200; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /**1.在AndroidManifest文件中添加需要的权限。 * * 2.检查权限 *这里涉及到一个API,ContextCompat.checkSelfPermission, * 主要用于检测某个权限是否已经被授予,方法返回值为PackageManager.PERMISSION_DENIED * 或者PackageManager.PERMISSION_GRANTED。当返回DENIED就需要进行申请授权了。 * */ if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED){ //权限没有被授予 /**3.申请授权 * @param * @param activity The target activity.(Activity|Fragment、) * @param permissions The requested permissions.(权限字符串数组) * @param requestCode Application specific request code to match with a result(int型申请码) * reported to {@link OnRequestPermissionsResultCallback#onRequestPermissionsResult( * int, String[], int[])}. * */ ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_CODE); }else{//权限被授予 //直接操作 } } /*** * * 4.处理权限申请回调 */ @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == REQUEST_CODE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { //权限被授予 } else { // Permission Denied Toast.makeText(MainActivity.this, "Permission Denied", Toast.LENGTH_SHORT).show(); } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }
android 6.0运行时的权限
最新推荐文章于 2021-05-25 19:39:45 发布