При разработке интеграции устройств IoT с приложением Android я застрял в этой проблеме.
Чего я хочу добиться, так это поговорить с моим приложением, например, «Алекса, какая температура внутри плиты?». Для получения этой информации у меня есть приложение для Android, подключенное к смарт-плите через Bluetooth, и приложение, которое может считывать информацию о температуре с плиты.
Теперь, как мне получить запрос в моем приложении для Android и как я могу вернуть свой ответ как «Текущая температура в плите составляет 100 градусов Цельсия». и Алекса могла бы выразить это словами для меня.
Вот что я сделал до сих пор.
- Я создал аккаунт на консоли разработчика amazon
- Зарегистрировал там мое приложение и скопировал ключ API в мой проект Android
- Добавил свою библиотеку в мой андроид проект
Используется логин через сервис 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>
Я следовал этой документации.
Что мне нужно сделать, чтобы запрос в моем приложении обрабатывался и возвращал результат? или это вообще возможно?