Merge "Check the model id format before start to parse the data"
diff --git a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
index a41d7a3..6538462 100644
--- a/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
+++ b/nearby/service/java/com/android/server/nearby/fastpair/FastPairAdvHandler.java
@@ -54,14 +54,16 @@
             return;
         }
         mBleAddress = fastPairDevice.getBluetoothAddress();
-        byte[] model = FastPairDecoder.getModelId(fastPairDevice.getData());
-        Log.d("FastPairService",
-                "On discovery model id" + Hex.bytesToStringLowercase(model));
-        // Use api to get anti spoofing key from model id.
-        Locator.get(mContext, FastPairHalfSheetManager.class).showHalfSheet(
-                Cache.ScanFastPairStoreItem.newBuilder()
-                        .setAddress(mBleAddress)
-                        .setAntiSpoofingPublicKey(ByteString.EMPTY)
-                        .build());
+        if (FastPairDecoder.checkModelId(fastPairDevice.getData())) {
+            byte[] model = FastPairDecoder.getModelId(fastPairDevice.getData());
+            Log.d("FastPairService",
+                    "On discovery model id" + Hex.bytesToStringLowercase(model));
+            // Use api to get anti spoofing key from model id.
+            Locator.get(mContext, FastPairHalfSheetManager.class).showHalfSheet(
+                    Cache.ScanFastPairStoreItem.newBuilder()
+                            .setAddress(mBleAddress)
+                            .setAntiSpoofingPublicKey(ByteString.EMPTY)
+                            .build());
+        }
     }
 }