运行时权限

来源:互联网 发布:我的世界ipad枪械js 编辑:程序博客网 时间:2024/06/07 05:52

Permission GroupPermissionsCALENDARREAD_CALENDAR 和  WRITE_CALENDARCAMERACAMERACONTACTSREAD_CONTACTS、WRITE_CONTACTS、GET_ACCOUNTSLOCATIONACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATIONMICROPHONERECORD_AUDIOPHONEREAD_PHONE_STATE、CALL_PHONE、READ_CALL_LOG、WRITE_CALL_LOG、ADD_VOICEMAIL、USE_SIP、PROCESS_OUTGOING_CALLSSENSORSBODY_SENSORSSMSSEND_SMS、 RECEIVE_SMS、 READ_SMS、RECEIVE_WAP_PUSH、RECEIVE_MMSSTORAGEREAD_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE

List<String> per = new ArrayList<>();if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){    per.add(Manifest.permission.ACCESS_FINE_LOCATION);}if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){    per.add(Manifest.permission.ACCESS_COARSE_LOCATION);}if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED){    per.add(Manifest.permission.READ_PHONE_STATE);}if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){    per.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);}if (!per.isEmpty()){    String[] permissions = per.toArray(new String[per.size()]);    ActivityCompat.requestPermissions(MainActivity.this,permissions,1);} else    requestLocation();

public void onRequestPermissionResult(int requestCode,String[] permissions,int[] grantResults){    switch (requestCode) {        case 1:            if (grantResults.length > 0) {                for (int result:grantResults) {                    if (result != PackageManager.PERMISSION_GRANTED){                        Toast.makeText(this,"必须同意权限才能使用",Toast.LENGTH_LONG).show();                        finish();                        return;                    }                }                requestLocation();            } else {                Toast.makeText(this,"wrong",Toast.LENGTH_LONG).show();                finish();            }            break;        default:    }}