diff options
| author | 2023-03-15 11:52:39 +0000 | |
|---|---|---|
| committer | 2023-03-17 06:02:27 +0000 | |
| commit | 93fde65073672e093d8400162ab29bb7c8002805 (patch) | |
| tree | 1c5cf94b71930506723f2f3d845ee06760f22350 /packages/SettingsLib/src | |
| parent | bdf9aaf0e933d4065a6017061deb31775f4e71c3 (diff) | |
[LE Audio] Add try catch for bluetooth device address fail
Bug: 263554347
Bug: 265281156
Bug: 248409874
Test: manual test
Change-Id: Ic200406e35793831841a75311923d86be423c0d8
Diffstat (limited to 'packages/SettingsLib/src')
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcastMetadata.java | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcastMetadata.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcastMetadata.java index c61ebc032fa5..0630a2e515e0 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcastMetadata.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothLeBroadcastMetadata.java @@ -261,19 +261,21 @@ public class LocalBluetoothLeBroadcastMetadata { Pattern pattern = Pattern.compile(PATTERN_BT_BROADCAST_METADATA); Matcher match = pattern.matcher(qrCodeString); if (match.find()) { - mSourceAddressType = Integer.parseInt(match.group(MATCH_INDEX_ADDRESS_TYPE)); - mSourceDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice( + try { + mSourceAddressType = Integer.parseInt(match.group(MATCH_INDEX_ADDRESS_TYPE)); + mSourceDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice( match.group(MATCH_INDEX_DEVICE)); - mSourceAdvertisingSid = Integer.parseInt(match.group(MATCH_INDEX_ADVERTISING_SID)); - mBroadcastId = Integer.parseInt(match.group(MATCH_INDEX_BROADCAST_ID)); - mPaSyncInterval = Integer.parseInt(match.group(MATCH_INDEX_SYNC_INTERVAL)); - mIsEncrypted = Boolean.valueOf(match.group(MATCH_INDEX_IS_ENCRYPTED)); - mBroadcastCode = match.group(MATCH_INDEX_BROADCAST_CODE).getBytes(); - mPresentationDelayMicros = - Integer.parseInt(match.group(MATCH_INDEX_PRESENTATION_DELAY)); - - if (DEBUG) { - Log.d(TAG, "Converted qrCodeString result: " + mSourceAdvertisingSid = Integer.parseInt( + match.group(MATCH_INDEX_ADVERTISING_SID)); + mBroadcastId = Integer.parseInt(match.group(MATCH_INDEX_BROADCAST_ID)); + mPaSyncInterval = Integer.parseInt(match.group(MATCH_INDEX_SYNC_INTERVAL)); + mIsEncrypted = Boolean.valueOf(match.group(MATCH_INDEX_IS_ENCRYPTED)); + mBroadcastCode = match.group(MATCH_INDEX_BROADCAST_CODE).getBytes(); + mPresentationDelayMicros = + Integer.parseInt(match.group(MATCH_INDEX_PRESENTATION_DELAY)); + + if (DEBUG) { + Log.d(TAG, "Converted qrCodeString result: " + " ,Type = " + mSourceAddressType + " ,Device = " + mSourceDevice + " ,AdSid = " + mSourceAdvertisingSid @@ -282,11 +284,11 @@ public class LocalBluetoothLeBroadcastMetadata { + " ,encrypted = " + mIsEncrypted + " ,BroadcastCode = " + Arrays.toString(mBroadcastCode) + " ,delay = " + mPresentationDelayMicros); - } + } - mSubgroup = convertToSubgroup(match.group(MATCH_INDEX_SUBGROUPS)); + mSubgroup = convertToSubgroup(match.group(MATCH_INDEX_SUBGROUPS)); - return new BluetoothLeBroadcastMetadata.Builder() + return new BluetoothLeBroadcastMetadata.Builder() .setSourceDevice(mSourceDevice, mSourceAddressType) .setSourceAdvertisingSid(mSourceAdvertisingSid) .setBroadcastId(mBroadcastId) @@ -296,10 +298,13 @@ public class LocalBluetoothLeBroadcastMetadata { .setPresentationDelayMicros(mPresentationDelayMicros) .addSubgroup(mSubgroup) .build(); + } catch (IllegalArgumentException e) { + Log.d(TAG, "IllegalArgumentException when convert : " + e); + return null; + } } else { if (DEBUG) { - Log.d(TAG, - "The match fail, can not convert it to BluetoothLeBroadcastMetadata."); + Log.d(TAG, "The match fail, can not convert it to BluetoothLeBroadcastMetadata."); } return null; } |