public final class android.bluetooth.le.ScanRecord
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.bluetooth.le.ScanRecord
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "ScanRecord"
private static final int DATA_TYPE_FLAGS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int DATA_TYPE_LOCAL_NAME_SHORT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int DATA_TYPE_LOCAL_NAME_COMPLETE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int DATA_TYPE_TX_POWER_LEVEL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int DATA_TYPE_SERVICE_DATA_16_BIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 22
private static final int DATA_TYPE_SERVICE_DATA_32_BIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int DATA_TYPE_SERVICE_DATA_128_BIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33
private static final int DATA_TYPE_MANUFACTURER_SPECIFIC_DATA;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 255
private final int mAdvertiseFlags;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<android.os.ParcelUuid> mServiceUuids;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Landroid/os/ParcelUuid;>;
private final android.util.SparseArray<byte[]> mManufacturerSpecificData;
descriptor: Landroid/util/SparseArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/SparseArray<[B>;
private final java.util.Map<android.os.ParcelUuid, byte[]> mServiceData;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
private final int mTxPowerLevel;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String mDeviceName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] mBytes;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public int getAdvertiseFlags();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
public java.util.List<android.os.ParcelUuid> getServiceUuids();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
Signature: ()Ljava/util/List<Landroid/os/ParcelUuid;>;
public android.util.SparseArray<byte[]> getManufacturerSpecificData();
descriptor: ()Landroid/util/SparseArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
Signature: ()Landroid/util/SparseArray<[B>;
public byte[] getManufacturerSpecificData(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast byte[]
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
0 1 1 manufacturerId I
MethodParameters:
Name Flags
manufacturerId
public java.util.Map<android.os.ParcelUuid, byte[]> getServiceData();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
Signature: ()Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
public byte[] getServiceData(android.os.ParcelUuid);
descriptor: (Landroid/os/ParcelUuid;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/bluetooth/le/ScanRecord;
0 3 1 serviceDataUuid Landroid/os/ParcelUuid;
MethodParameters:
Name Flags
serviceDataUuid
public int getTxPowerLevel();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
public java.lang.String getDeviceName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
public byte[] getBytes();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.bluetooth.le.ScanRecord.mBytes:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/bluetooth/le/ScanRecord;
private void <init>(java.util.List<android.os.ParcelUuid>, android.util.SparseArray<byte[]>, java.util.Map<android.os.ParcelUuid, byte[]>, int, int, java.lang.String, );
descriptor: (Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
2: aload 0
aload 2
putfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
3: aload 0
aload 3
putfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
4: aload 0
aload 6
putfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
5: aload 0
iload 4
putfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
6: aload 0
iload 5
putfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
7: aload 0
aload 7
putfield android.bluetooth.le.ScanRecord.mBytes:[B
8: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/bluetooth/le/ScanRecord;
0 9 1 serviceUuids Ljava/util/List<Landroid/os/ParcelUuid;>;
0 9 2 manufacturerData Landroid/util/SparseArray<[B>;
0 9 3 serviceData Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
0 9 4 advertiseFlags I
0 9 5 txPowerLevel I
0 9 6 localName Ljava/lang/String;
0 9 7 bytes [B
Signature: (Ljava/util/List<Landroid/os/ParcelUuid;>;Landroid/util/SparseArray<[B>;Ljava/util/Map<Landroid/os/ParcelUuid;[B>;IILjava/lang/String;[B)V
MethodParameters:
Name Flags
serviceUuids
manufacturerData
serviceData
advertiseFlags
txPowerLevel
localName
bytes
public static android.bluetooth.le.ScanRecord parseFromBytes(byte[]);
descriptor: ([B)Landroid/bluetooth/le/ScanRecord;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=17, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: iconst_m1
istore 2
start local 2 4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: aconst_null
astore 4
start local 4 6: ldc -2147483648
istore 5
start local 5 7: new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
astore 6
start local 6 8: new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
astore 7
start local 7 9: goto 62
10: StackMap locals: byte[] int int java.util.List java.lang.String int android.util.SparseArray java.util.Map
StackMap stack:
aload 0
iload 1
iinc 1 1
baload
sipush 255
iand
istore 8
start local 8 11: iload 8
ifne 13
12: goto 63
13: StackMap locals: int
StackMap stack:
iload 8
iconst_1
isub
istore 9
start local 9 14: aload 0
iload 1
iinc 1 1
baload
sipush 255
iand
istore 10
start local 10 15: iload 10
lookupswitch { // 14
1: 16
2: 18
3: 18
4: 22
5: 22
6: 26
7: 26
8: 30
9: 30
10: 34
22: 36
32: 36
33: 36
255: 52
default: 60
}
16: StackMap locals: int int
StackMap stack:
aload 0
iload 1
baload
sipush 255
iand
istore 2
17: goto 60
18: StackMap locals:
StackMap stack:
aload 0
iload 1
19: iload 9
iconst_2
aload 3
20: invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
pop
21: goto 60
22: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 9
23: iconst_4
aload 3
24: invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
pop
25: goto 60
26: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 9
27: bipush 16
aload 3
28: invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
pop
29: goto 60
30: StackMap locals:
StackMap stack:
new java.lang.String
dup
31: aload 0
iload 1
iload 9
invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
32: invokespecial java.lang.String.<init>:([B)V
astore 4
33: goto 60
34: StackMap locals:
StackMap stack:
aload 0
iload 1
baload
istore 5
35: goto 60
36: StackMap locals:
StackMap stack:
iconst_2
istore 11
start local 11 37: iload 10
bipush 32
if_icmpne 40
38: iconst_4
istore 11
39: goto 42
StackMap locals: int
StackMap stack:
40: iload 10
bipush 33
if_icmpne 42
41: bipush 16
istore 11
42: StackMap locals:
StackMap stack:
aload 0
iload 1
43: iload 11
44: invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
astore 12
start local 12 45: aload 12
46: invokestatic android.bluetooth.BluetoothUuid.parseUuidFrom:([B)Landroid/os/ParcelUuid;
astore 13
start local 13 47: aload 0
48: iload 1
iload 11
iadd
iload 9
iload 11
isub
49: invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
astore 14
start local 14 50: aload 7
aload 13
aload 14
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
51: goto 60
end local 14 end local 13 end local 12 end local 11 52: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
53: aload 0
iload 1
baload
sipush 255
iand
54: iadd
istore 15
start local 15 55: aload 0
iload 1
iconst_2
iadd
56: iload 9
iconst_2
isub
57: invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
astore 16
start local 16 58: aload 6
iload 15
aload 16
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
59: goto 60
end local 16 end local 15 60: StackMap locals:
StackMap stack:
iload 1
61: iload 9
iadd
istore 1
end local 10 end local 9 end local 8 62: StackMap locals:
StackMap stack:
iload 1
aload 0
arraylength
if_icmplt 10
63: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 65
64: aconst_null
astore 3
65: StackMap locals:
StackMap stack:
new android.bluetooth.le.ScanRecord
dup
aload 3
aload 6
aload 7
66: iload 2
iload 5
aload 4
aload 0
67: invokespecial android.bluetooth.le.ScanRecord.<init>:(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
68: areturn
69: StackMap locals:
StackMap stack: java.lang.Exception
pop
70: ldc "ScanRecord"
new java.lang.StringBuilder
dup
ldc "unable to parse scan record: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
71: new android.bluetooth.le.ScanRecord
dup
aconst_null
aconst_null
aconst_null
iconst_m1
ldc -2147483648
aconst_null
aload 0
invokespecial android.bluetooth.le.ScanRecord.<init>:(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 scanRecord [B
3 72 1 currentPos I
4 72 2 advertiseFlag I
5 72 3 serviceUuids Ljava/util/List<Landroid/os/ParcelUuid;>;
6 72 4 localName Ljava/lang/String;
7 72 5 txPowerLevel I
8 72 6 manufacturerData Landroid/util/SparseArray<[B>;
9 72 7 serviceData Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
11 62 8 length I
14 62 9 dataLength I
15 62 10 fieldType I
37 52 11 serviceUuidLength I
45 52 12 serviceDataUuidBytes [B
47 52 13 serviceDataUuid Landroid/os/ParcelUuid;
50 52 14 serviceDataArray [B
55 60 15 manufacturerId I
58 60 16 manufacturerDataBytes [B
Exception table:
from to target type
9 68 69 Class java.lang.Exception
MethodParameters:
Name Flags
scanRecord
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "ScanRecord [mAdvertiseFlags="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", mServiceUuids="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
1: ldc ", mManufacturerSpecificData="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
3: invokestatic android.bluetooth.le.BluetoothLeUtils.toString:(Landroid/util/SparseArray;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc ", mServiceData="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
invokestatic android.bluetooth.le.BluetoothLeUtils.toString:(Ljava/util/Map;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc ", mTxPowerLevel="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", mDeviceName="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/bluetooth/le/ScanRecord;
private static int parseServiceUuid(byte[], int, int, int, java.util.List<android.os.ParcelUuid>);
descriptor: ([BIIILjava/util/List;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: goto 7
1: StackMap locals:
StackMap stack:
aload 0
iload 1
2: iload 3
3: invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
astore 5
start local 5 4: aload 4
aload 5
invokestatic android.bluetooth.BluetoothUuid.parseUuidFrom:([B)Landroid/os/ParcelUuid;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: iload 2
iload 3
isub
istore 2
6: iload 1
iload 3
iadd
istore 1
end local 5 7: StackMap locals:
StackMap stack:
iload 2
ifgt 1
8: iload 1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 scanRecord [B
0 9 1 currentPos I
0 9 2 dataLength I
0 9 3 uuidLength I
0 9 4 serviceUuids Ljava/util/List<Landroid/os/ParcelUuid;>;
4 7 5 uuidBytes [B
Signature: ([BIIILjava/util/List<Landroid/os/ParcelUuid;>;)I
MethodParameters:
Name Flags
scanRecord
currentPos
dataLength
uuidLength
serviceUuids
private static byte[] extractBytes(byte[], int, int);
descriptor: ([BII)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
newarray 8
astore 3
start local 3 1: aload 0
iload 1
aload 3
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 scanRecord [B
0 3 1 start I
0 3 2 length I
1 3 3 bytes [B
MethodParameters:
Name Flags
scanRecord
start
length
}
SourceFile: "ScanRecord.java"