从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。
private final static int PUBLISHER_REQUEST_CODE = 1;
import android.support.v4.content.ContextCompat; import android.Manifest; import andorid.content.pm.PackageManager; import android.support.v4.app.ActivityCompat; if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}, PUBLISHER_REQUEST_CODE); } else { /*your codes*/ }
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PUBLISHER_REQUEST_CODE) { if (grantResults[0] != PackageManager.PERMISSION_GRANTED || grantResults[1] != PackageManager.PERMISSION_GRANTED) { // Permission Denied Toast.makeText(this, "获取权限失败", Toast.LENGTH_SHORT).show(); return; } /* your codes*/ } }