package com.amazon.aws.iotbot; import android.app.ActionBar; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.StrictMode; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.amazonaws.auth.CognitoCachingCredentialsProvider; import com.amazonaws.demo.iotbotremote.R; import com.amazonaws.mobileconnectors.iot.AWSIotKeystoreHelper; import com.amazonaws.mobileconnectors.iot.AWSIotMqttClientStatusCallback; import com.amazonaws.mobileconnectors.iot.AWSIotMqttManager; import com.amazonaws.mobileconnectors.iot.AWSIotMqttNewMessageCallback; import com.amazonaws.mobileconnectors.iot.AWSIotMqttQos; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.iot.AWSIotClient; import com.amazonaws.services.iot.model.AttachPrincipalPolicyRequest; import com.amazonaws.services.iot.model.CreateKeysAndCertificateRequest; import com.amazonaws.services.iot.model.CreateKeysAndCertificateResult; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.S3ObjectInputStream; import com.amazonaws.util.IOUtils; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.KeyStore; import java.util.UUID; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class MainActivity extends Activity { static final String LOG_TAG = MainActivity.class.getCanonicalName(); // --- Constants to modify per your configuration --- // Endpoint Prefix = random characters at the beginning of the custom AWS // IoT endpoint // describe endpoint call returns: XXXXXXXXXX.iot..amazonaws.com, // endpoint prefix string is XXXXXXX private static final String CUSTOMER_SPECIFIC_ENDPOINT_PREFIX = ""; // Cognito pool ID. For this app, pool needs to be unauthenticated pool with // AWS IoT permissions. private static final String COGNITO_POOL_ID = "