首页 > 学院 > 开发设计 > 正文

技术堆栈---6.0新特性之运行时权限

2019-11-09 14:56:51
字体:
来源:转载
供稿:网友
public class MainActivity extends AppCompatActivity { PRivate Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (Button) findViewById(R.id.mbtn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //判断用户是不是已经授权了 !=为没授权 if(ContextCompat.checkSelfPermission( MainActivity.this, //第二个参数为具体权限名 Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){ //向用户申请授权 ActivityCompat.requestPermissions( MainActivity.this, //申请权限名的数组 new String[]{Manifest.permission.CALL_PHONE}, //参数三为请求码 1); }else { call(); } } }); } private void call() { //必须要 捕获一下异常才可以 try { Intent intent=new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); }catch (SecurityException e){ e.printStackTrace(); } } @Override //当用户点击完申请权限的弹窗以后都会回调到这个方法中 // 授权的记过封装在grantResults参数中 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){ call(); }else{ Toast.makeText(this,"You denied the permission",Toast.LENGTH_SHORT).show(); } break; default: break; } }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表