【问题标题】:Setting camera permissions on Android using Detox使用 Detox 在 Android 上设置相机权限
【发布时间】:2020-10-30 11:12:28
【问题描述】:

说明

我正在测试一个可以访问相机以获取照片的屏幕。但我无法处理 Android 测试中的权限对话框。

我使用await 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
  • 操作系统:macOS Mojave 10.14.6
  • 设备:模拟器 Nexus S API 27

【问题讨论】:

    标签: android react-native e2e-testing detox


    【解决方案1】:

    我的 Android 模拟器的 Detox 17.2.0、React Native 0.61、API 27 也有这个问题。它在 iOS 上完美运行,但在 Android 上,无论我设置 NOYES 权限,它们始终处于启用状态。

    如果我在启动detox test 之前更改应用程序的这些权限,所有权限都会再次启用。

    我的测试如下所示:

    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' } })
        ...
      })
    })
    

    Detox 暂时无法处理这个问题我猜如果你检查这个问题https://github.com/wix/Detox/issues/2184

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2015-12-31
      • 1970-01-01
      相关资源
      最近更新 更多