未请求相机权限,但仍在工作

Camera permissions are not requested but are still working

清单文件:

    <uses-permission android:name="android.permission.CAMERA" android:requiredFeature="true" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:requiredFeature="true" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:requiredFeature="true"/>

该应用未请求相机权限,但它仍在运行。 我可以使用以下意图使用相机:

val takePhotoIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)

我不知道为什么。

尽管没有向该应用授予任何权限,但情况仍然如此:

这可能是因为您 运行 它在较旧的 api 上,或者已经将这些权限授予该应用程序一次。另一种可能性:您的设备已获得 root 权限。

我认为这是因为您实际上并没有自己控制相机。您要求启动相机应用程序。您的应用无法在没有用户干预的情况下拍照,因此很安全。

之所以可行,是因为您的应用无法访问以下任何内容:

  • 相机本身
  • 用户的internal/external存储空间
  • 用户现有照片

您得到的只是让用户拍照并 return 将照片发给您的机会。由于用户需要明确同意作为流程的一部分,因此不需要许可。

此模型还有一个好处,即使用户不授予应用相机或存储权限,应用也可以拍摄照片。他们可以放心,该应用程序只能访问用户拍摄的单张照片。同样的原则也适用于要求用户 select 一张照片。