我正在尝试按照https://github.com/awslabs/aws-sdk-android-samples/tree/master/AndroidPubSubWebSocket上的指南使用Android应用程序连接到Amazon IoT服务。
我已将CUSTOMER_SPECIFIC_ENDPOINT更改为AWS IoT控制台的“设置”部分中的ENDPOINT值。此外,我已将COGNITO_POOL_ID值更改为 Amazon Cognito入门下的POOL_ID。
不幸的是现在每当我尝试连接到连接时,即使使用上面的repo中的示例代码,连接状态状态也会继续尝试重新连接而不提供任何 throwable 对象。
答案 0 :(得分:0)
在IoT事件策略中,您是否提供了连接,订阅和发布的适当权限。该选项可在AWS IoT-> Security-> Policy-> Create Policy中找到。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "arn:aws:iot:us-east-2:293751794947:topic/replaceWithATopic"
}
]
}
以上政策提供对用户的所有访问权限。另外,请确保您创建的池适用于未经身份验证的用户。
<强>更新强> 在IAM策略中。检查您是否已授予Cognito池适当的权限。如果没有将IoTFullAccess策略附加到池中。它将解决问题。