使用Detox在Android上设置摄像头权限

使用Detox在Android上设置摄像头权限,android,react-native,e2e-testing,detox,Android,React Native,E2e Testing,Detox,说明 我正在测试一个可以进入相机的屏幕,以便拍摄照片。但是我不能在Android上的测试中处理权限对话框 我使用wait device.launchApp({permissions:{camera:'YES'})运行测试。此设置适用于iOS。我如何接受Android的所有权限?或者我如何处理Android上的权限对话框 复制 init.js设置 await device.launchApp({ permissions: { photos: 'YES', camera: 'YES' }, })

说明

我正在测试一个可以进入相机的屏幕,以便拍摄照片。但是我不能在Android上的测试中处理权限对话框

我使用
wait device.launchApp({permissions:{camera:'YES'})运行测试。此设置适用于iOS。我如何接受Android的所有权限?或者我如何处理Android上的权限对话框

复制

init.js设置

await device.launchApp({
  permissions: { photos: 'YES', camera: 'YES' },
});
仿真器设置

{
  "configurations": {
    "android.emu.debug": {
      "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
      "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
      "type": "android.emulator",
      "device": {
        "avdName": "Nexus_S_API_27"
      }
    }
  }
}
环境

  • 排毒:16.2.1
  • 反应本机:0.60.4
  • 节点:12.16.1
  • OS:macOS Mojave 10.14.6
  • 设备:emulator Nexus S API 27

    • 我的Android仿真器的解毒17.2.0、React Native 0.61、API 27也有这个问题。它在iOS上运行得很好,但在Android上,无论我在权限上设置了
      NO
      YES
      ,它们都是启用的

      如果我在启动
      解毒测试之前更改了应用程序上的这些权限,则所有权限都将再次启用

      我的测试如下所示:

      describe('Permissions', () => {
        beforeEach(async () => {
          await device.reloadReactNative()
        })
      
        it('displays no warning when camera and microphone access are authorized', async () => {
          await device.launchApp({ newInstance: true, permissions: { camera: 'YES', microphone: 'YES' } })
          ...
        })
      
        it('displays a warning message + button to app settings when camera access is denied', async () => {
          await device.launchApp({ newInstance: true, permissions: { camera: 'NO', microphone: 'YES' } })
          ...
        })
      })
      
      排毒暂时无法处理这个问题,我想如果你检查一下这个问题