PermissionChecker.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);
此方法可针对TargetSDK<23,本机ROM>23,但是却无法准确检测权限的问题.
当build.SDK(实际ROM)小于23的时候,无法判断权限.只能通过异常.参看微信.
当build.sdk>23 target<23 PermissionChecker.checkSelfPermission
当build.sdk>23 target>23 ActivityCompat.checkSelfPermission
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//当build.SDK(实际ROM)小于23的时候,无法判断权限.只能通过异常.参看微信.
//当前build.sdk>23 target<23 PermissionChecker.checkSelfPermission
//当build.sdk>23 target>23 ActivityCompat.checkSelfPermission
//针对Build.VERSION.SDK_INT<23&&(getApplicationInfo().targetSdkVersion<23||>23)默认是有权限的==0;
int i = ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);
Log.e("ActivityCompat.check",i+"=========");
// ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA},1001);
//这种方案只能检测实际romBuild.VERSION.SDK_INT>23&&getApplicationInfo().targetSdkVersion<23以下的权限;
//针对Build.VERSION.SDK_INT<23&&(getApplicationInfo().targetSdkVersion<23||>23)默认是有权限的==0;
int i1 = PermissionChecker.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);
Log.e("PermissionChecker","执行到这了么??"+i1+"===="+Build.VERSION.SDK_INT+"==="+MainActivity.this.getApplicationInfo().targetSdkVersion);
//==0 允许 -2 禁止 -1 询问
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1002);
/*Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1001);*/
// gotoPickAndCropSmallBitmap();
}
});
}
网友评论