Как получить голосовой запрос к моему приложению с помощью Amazon Voice Service или Alexa - PullRequest
0 голосов
/ 01 апреля 2019

При разработке интеграции устройств IoT с приложением Android я застрял в этой проблеме.

Чего я хочу добиться, так это поговорить с моим приложением, например, «Алекса, какая температура внутри плиты?». Для получения этой информации у меня есть приложение для Android, подключенное к смарт-плите через Bluetooth, и приложение, которое может считывать информацию о температуре с плиты.

Теперь, как мне получить запрос в моем приложении для Android и как я могу вернуть свой ответ как «Текущая температура в плите составляет 100 градусов Цельсия». и Алекса могла бы выразить это словами для меня.

Вот что я сделал до сих пор.

  1. Я создал аккаунт на консоли разработчика amazon
  2. Зарегистрировал там мое приложение и скопировал ключ API в мой проект Android
  3. Добавил свою библиотеку в мой андроид проект
  4. Используется логин через сервис Amazon для получения accessToken

    requestContext = RequestContext.create(this)
    requestContext.registerListener(object : AuthorizeListener() {
        override fun onSuccess(authorizeResult: AuthorizeResult) {
            accessToken = authorizeResult.accessToken
            Timber.d("Access Token: %s", accessToken)
        }
    
        override fun onCancel(auth: AuthCancellation?) {
            Timber.e(auth?.description)
        }
    
        override fun onError(error: AuthError) {
            Timber.e(error, error.localizedMessage)
        }
    })
    
    signInBtn.setOnClickListener {
        AuthorizationManager.authorize(
            AuthorizeRequest.Builder(requestContext)
                .addScopes(ProfileScope.profile(), ProfileScope.postalCode())
                .build()
        )
    }
    

Вот соответствующие декларации манифеста

<activity android:name="com.amazon.identity.auth.device.workflow.WorkflowActivity"
    android:theme="@android:style/Theme.NoDisplay"
    android:allowTaskReparenting="true"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <!-- android:host must use the full package name found in Manifest General Attributes -->
        <data android:host="${applicationId}" android:scheme="amzn"/>
    </intent-filter>
</activity>

Я следовал этой документации.

Что мне нужно сделать, чтобы запрос в моем приложении обрабатывался и возвращал результат? или это вообще возможно?

1 Ответ

1 голос
/ 03 апреля 2019

Вам нужно создать умный умный дом, чтобы сделать это, путь для продвижения вперед -

  1. создать умный умный дом, справочная документация здесь

  2. Как только вы создали умение умного дома (вы бы создали бэкэнд-сервер в процессе), и пользователь включил это умение в своей учетной записи Alexa после этого всякий раз, когда пользователь спрашивает «AlexaКакова температура внутри плиты? "вы получите запрос директивы на свой сервер, который затем можно будет перенаправить в приложение android, и приложение Android отправит ответ AVS напрямую или через ваш сервер.

...