in tools/android-app/app/src/main/java/com/aws/iotfleetwise/MainActivity.java [178:216]
private void downloadCredentials(String provisioningLink)
{
Thread t = new Thread(() -> {
Log.i("DownloadCredentials", "Provisioning link: " + provisioningLink);
final String urlParam = "url=";
// First try getting the S3 link normally from the provisioning link:
Uri uri = Uri.parse(provisioningLink);
String fragment = uri.getFragment();
if (fragment != null) {
int urlStart = fragment.indexOf(urlParam);
if (urlStart >= 0) {
String s3Link = fragment.substring(urlStart + urlParam.length());
if (downloadCredentialsFromS3(s3Link)) {
return;
}
}
}
// Some QR code scanning apps url decode the provisioning link, so try that next:
int urlStart = provisioningLink.indexOf(urlParam);
if (urlStart >= 0) {
String s3Link = provisioningLink.substring(urlStart + urlParam.length());
if (downloadCredentialsFromS3(s3Link)) {
return;
}
}
// Neither worked, show an error:
runOnUiThread(() -> {
AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Error");
alertDialog.setMessage("Invalid provisioning link");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", (dialog, which) -> dialog.dismiss());
alertDialog.show();
});
});
t.start();
}