0

我正在尝试 Affectiva AI 文档中引用的 github 示例。

请参阅:github 上的 Affectiva Android 示例

这些示例工作,附带以下项目 gradle 配置:

构建.gradle

apply plugin: 'com.android.application'

android {


    compileSdkVersion 22
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 22
        versionCode 1
        setProperty("archivesBaseName", "$project.name-$versionName")
        applicationId "com.affectiva.cameradetectordemo"
        versionName "3.2.0-01"
    }
    buildTypes {
        release {
            minifyEnabled true
        }
    }
    buildToolsVersion '27.0.3'
}

dependencies {
    implementation('com.affectiva.android:affdexsdk:3.+')
}

问题是,这些示例仅适用于compileSdkVersiontargetSdkVersion都设置为 22。当我输入更高的值(23 到 27)时,应用程序会编译,但是当我想从应用程序内部启动相机时,应用程序会崩溃并显示错误消息

java.lang.IllegalStateException:相机不可用。

问题:

  1. 为什么 Affectiva 示例仅适用于 SDK 版本 22?
  2. 如何在当前版本的 Android SDK 中使用 affdex-sdk?

谢谢你的帮助!

4

1 回答 1

0

Android 在 API 级别 23 中引入了运行时权限功能。针对 23+ 的应用必须实现运行时权限逻辑并请求摄像头权限才能访问摄像头。

您引用的示例的目的是演示 Affectiva SDK 的使用,因此为了避免需要添加一堆与该目的无关的运行时权限逻辑,它针对 API 级别 22。

于 2018-05-28T20:27:14.730 回答