java - 请求相机许可
问题描述
我正在尝试从应用程序中访问相机。我有以下代码,除了没有给用户授予权限的选项外,一切正常。不太确定它出了什么问题。
public void takePicture(查看视图){
if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
//requestPermissions(new String[]{Manifest.permission.CAMERA}, MY_CAMERA_PERMISSION_CODE);
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.CAMERA}, MY_CAMERA_PERMISSION_CODE);
}
else
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
}
public void saveButton (View view) {
Log.i("info", "stuff");
}
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE)
{
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Toast.makeText(this, "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
else
{
Toast.makeText(this, "camera permission denied", Toast.LENGTH_LONG).show();
}
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
}
}
单击按钮后,toast 会出现以显示尚未授予权限但首先没有授予权限的选项?
解决方案
请确保您在 Androidmanifeast.xml 中添加了摄像头权限,并且代码中的细微更改替换以下行
if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
和
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
推荐阅读
- c++ - 如何调试发布
- javascript - 从 Redux 中间件添加到状态
- selenium - 是否可以使用页面名称保存图片?
- python - 一次在多组图像上批量执行(ffmpeg)命令[新手]
- python - Python - 如果项目高于某个值,则删除行并在其他值之间替换
- vb.net - vb.net datatable asenumerble 获取不同的 vlues 并计算分组的重复行
- java - Java:WinAppDriver。请求的操作需要提升
- reactjs - JSX 按钮元素表单提交
- ms-access - MS访问两个表之间的多个关系
- php - 基于两列排序mysql查询