private static final int TAKE_PICTURE = 0;
private String CAMERA_OK;
//JS调用摄像头
@JavascriptInterface
public void useCamera() {
Log.v("v","开始调用摄像头");
if (Build.VERSION.SDK_INT >= 23) {
int checkCallPhonePermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);
if(checkCallPhonePermission != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CAMERA},CAMERA_OK);
return;
}else{
openCamera();
}
} else {
openCamera();
}
}
//打开摄像头
private void openCamera(){
Log.v("v","开始调用摄像头");
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"image.jpg"));
//指定照片保存路径(SD卡),image.jpg为一个临时文件,每次拍照后这个图片都会被替换
openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(openCameraIntent, TAKE_PICTURE);
String mypath=imageUri.getPath();
Log.v("w",mypath);
//return mypath;
}
//授权操作返回结果
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
//就像onActivityResult一样这个地方就是判断你是从哪来的。
case CAMERA_OK:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
openCamera();
} else {
// Permission Denied
Toast.makeText(MainActivity.this, "很遗憾你把相机权限禁用了。请务必开启相机权限享受我们提供的服务吧。", Toast.LENGTH_SHORT)
.show();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}