android.os.ParcelUuid#fromString ( )源码实例Demo

下面列出了android.os.ParcelUuid#fromString ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test public void testsetServiceDataFilter() {
  byte[] setServiceData = new byte[] {
      0x50, 0x64
  };
  ParcelUuid serviceDataUuid = ParcelUuid.fromString("0000110B-0000-1000-8000-00805F9B34FB");
  ScanFilter filter = filterBuilder.setServiceData(serviceDataUuid, setServiceData).build();
  assertTrue("service data filter fails", filter.matches(scanResult));
  byte[] emptyData = new byte[0];
  filter = filterBuilder.setServiceData(serviceDataUuid, emptyData).build();
  assertTrue("service data filter fails", filter.matches(scanResult));
  byte[] prefixData = new byte[] {
      0x50
  };
  filter = filterBuilder.setServiceData(serviceDataUuid, prefixData).build();
  assertTrue("service data filter fails", filter.matches(scanResult));
  byte[] nonMatchData = new byte[] {
      0x51, 0x64
  };
  byte[] mask = new byte[] {
      (byte) 0x00, (byte) 0xFF
  };
  filter = filterBuilder.setServiceData(serviceDataUuid, nonMatchData, mask).build();
  assertTrue("partial service data filter fails", filter.matches(scanResult));
  filter = filterBuilder.setServiceData(serviceDataUuid, nonMatchData).build();
  assertFalse("service data filter fails", filter.matches(scanResult));
}
 
源代码2 项目: mobly-bundled-snippets   文件: JsonDeserializer.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static AdvertiseData jsonToBleAdvertiseData(JSONObject jsonObject) throws JSONException {
    AdvertiseData.Builder builder = new AdvertiseData.Builder();
    if (jsonObject.has("IncludeDeviceName")) {
        builder.setIncludeDeviceName(jsonObject.getBoolean("IncludeDeviceName"));
    }
    if (jsonObject.has("IncludeTxPowerLevel")) {
        builder.setIncludeTxPowerLevel(jsonObject.getBoolean("IncludeTxPowerLevel"));
    }
    if (jsonObject.has("ServiceData")) {
        JSONArray serviceData = jsonObject.getJSONArray("ServiceData");
        for (int i = 0; i < serviceData.length(); i++) {
            JSONObject dataSet = serviceData.getJSONObject(i);
            ParcelUuid parcelUuid = ParcelUuid.fromString(dataSet.getString("UUID"));
            builder.addServiceUuid(parcelUuid);
            if (dataSet.has("Data")) {
                byte[] data = Base64.decode(dataSet.getString("Data"), Base64.DEFAULT);
                builder.addServiceData(parcelUuid, data);
            }
        }
    }
    if (jsonObject.has("ManufacturerData")) {
        JSONObject manufacturerData = jsonObject.getJSONObject("ManufacturerData");
        int manufacturerId = manufacturerData.getInt("ManufacturerId");
        byte[] manufacturerSpecificData =
                Base64.decode(jsonObject.getString("ManufacturerSpecificData"), Base64.DEFAULT);
        builder.addManufacturerData(manufacturerId, manufacturerSpecificData);
    }
    return builder.build();
}
 
@Test public void testParser() {
  byte[] scanRecord = new byte[] {
      0x02, 0x01, 0x1a, // advertising flags
      0x05, 0x02, 0x0b, 0x11, 0x0a, 0x11, // 16 bit service uuids
      0x04, 0x09, 0x50, 0x65, 0x64, // name
      0x02, 0x0A, (byte) 0xec, // tx power level
      0x05, 0x16, 0x0b, 0x11, 0x50, 0x64, // service data
      0x05, (byte) 0xff, (byte) 0xe0, 0x00, 0x02, 0x15, // manufacturer specific data
      0x03, 0x50, 0x01, 0x02, // an unknown data type won't cause trouble
  };
  ScanRecord data = ScanRecord.parseFromBytes(scanRecord);
  assertEquals(0x1a, data.getAdvertiseFlags());
  ParcelUuid uuid1 = ParcelUuid.fromString("0000110A-0000-1000-8000-00805F9B34FB");
  ParcelUuid uuid2 = ParcelUuid.fromString("0000110B-0000-1000-8000-00805F9B34FB");
  assertTrue(data.getServiceUuids().contains(uuid1));
  assertTrue(data.getServiceUuids().contains(uuid2));
  assertEquals("Ped", data.getDeviceName());
  assertEquals(-20, data.getTxPowerLevel());
  assertTrue(data.getManufacturerSpecificData().get(0x00E0) != null);
  assertArrayEquals(new byte[] {
      0x02, 0x15
  }, data.getManufacturerSpecificData().get(0x00E0));
  assertTrue(data.getServiceData().containsKey(uuid2));
  assertArrayEquals(new byte[] {
      0x50, 0x64
  }, data.getServiceData().get(uuid2));
}
 
源代码4 项目: android-beacon-library   文件: ScanFilterUtils.java
public List<ScanFilter> createScanFiltersForBeaconParsers(List<BeaconParser> beaconParsers) {
    List<ScanFilter> scanFilters = new ArrayList<ScanFilter>();
    // for each beacon parser, make a filter expression that includes all its desired
    // hardware manufacturers
    for (BeaconParser beaconParser: beaconParsers) {
        List<ScanFilterData> sfds = createScanFilterDataForBeaconParser(beaconParser);
        for (ScanFilterData sfd: sfds) {
            ScanFilter.Builder builder = new ScanFilter.Builder();
            if (sfd.serviceUuid != null) {
                // Use a 16 bit service UUID in a 128 bit form
                String serviceUuidString = String.format("0000%04X-0000-1000-8000-00805f9b34fb", sfd.serviceUuid);
                String serviceUuidMaskString = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF";
                ParcelUuid parcelUuid = ParcelUuid.fromString(serviceUuidString);
                ParcelUuid parcelUuidMask = ParcelUuid.fromString(serviceUuidMaskString);
                if (LogManager.isVerboseLoggingEnabled()) {
                    LogManager.d(TAG, "making scan filter for service: "+serviceUuidString+" "+parcelUuid);
                    LogManager.d(TAG, "making scan filter with service mask: "+serviceUuidMaskString+" "+parcelUuidMask);
                }
                builder.setServiceUuid(parcelUuid, parcelUuidMask);
            }
            else {
                builder.setServiceUuid(null);
                builder.setManufacturerData((int) sfd.manufacturer, sfd.filter, sfd.mask);
            }
            ScanFilter scanFilter = builder.build();
            if (LogManager.isVerboseLoggingEnabled()) {
                LogManager.d(TAG, "Set up a scan filter: "+scanFilter);
            }
            scanFilters.add(scanFilter);
        }
    }
    return scanFilters;
}
 
public static int getDeviceType(@NonNull BlePeripheral blePeripheral) {
    int type = kDeviceType_Unknown;

    ScanRecord scanRecord = blePeripheral.getScanRecord();
    if (scanRecord != null) {
        byte[] advertisedData = scanRecord.getBytes();

        // Check if is an iBeacon ( 0x02, 0x01, a flag byte, 0x1A, 0xFF, manufacturer (2bytes), 0x02, 0x15)
        final boolean isBeacon = advertisedData != null && advertisedData.length > 8 && advertisedData[0] == 0x02 && advertisedData[1] == 0x01 && advertisedData[3] == 0x1A && advertisedData[4] == (byte) 0xFF && advertisedData[7] == 0x02 && advertisedData[8] == 0x15;
        if (isBeacon) {
            type = kDeviceType_Beacon;
        } else {
            // Check if is an URIBeacon
            final byte[] kUriBeaconPrefix = {0x03, 0x03, (byte) 0xD8, (byte) 0xFE};
            final boolean isUriBeacon = advertisedData != null && advertisedData.length > 7 && Arrays.equals(Arrays.copyOf(advertisedData, kUriBeaconPrefix.length), kUriBeaconPrefix) && advertisedData[5] == 0x16 && advertisedData[6] == kUriBeaconPrefix[2] && advertisedData[7] == kUriBeaconPrefix[3];

            if (isUriBeacon) {
                type = kDeviceType_UriBeacon;
            } else {
                // Check if Uart is contained in the uuids
                boolean isUart = false;
                List<ParcelUuid> serviceUuids = scanRecord.getServiceUuids();
                if (serviceUuids != null) {
                    ParcelUuid uartUuid = ParcelUuid.fromString("6e400001-b5a3-f393-e0a9-e50e24dcca9e");
                    for (ParcelUuid serviceUuid : serviceUuids) {
                        if (serviceUuid.equals(uartUuid)) {
                            isUart = true;
                            break;
                        }
                    }
                }

                if (isUart) {
                    type = kDeviceType_Uart;
                }
            }
        }
    }

    return type;
}
 
@Test public void testReadWriteParcel() {
  ScanFilter filter = filterBuilder.build();
  testReadWriteParcelForFilter(filter);
  filter = filterBuilder.setDeviceName("Ped").build();
  testReadWriteParcelForFilter(filter);
  filter = filterBuilder.setDeviceAddress("11:22:33:44:55:66").build();
  testReadWriteParcelForFilter(filter);
  filter =
      filterBuilder.setServiceUuid(ParcelUuid.fromString("0000110C-0000-1000-8000-00805F9B34FB"))
          .build();
  testReadWriteParcelForFilter(filter);
  filter =
      filterBuilder.setServiceUuid(ParcelUuid.fromString("0000110C-0000-1000-8000-00805F9B34FB"),
          ParcelUuid.fromString("FFFFFFF0-FFFF-FFFF-FFFF-FFFFFFFFFFFF")).build();
  testReadWriteParcelForFilter(filter);
  byte[] serviceData = new byte[] {
      0x50, 0x64
  };
  ParcelUuid serviceDataUuid = ParcelUuid.fromString("0000110B-0000-1000-8000-00805F9B34FB");
  filter = filterBuilder.setServiceData(serviceDataUuid, serviceData).build();
  testReadWriteParcelForFilter(filter);
  filter = filterBuilder.setServiceData(serviceDataUuid, new byte[0]).build();
  testReadWriteParcelForFilter(filter);
  byte[] serviceDataMask = new byte[] {
      (byte) 0xFF, (byte) 0xFF
  };
  filter = filterBuilder.setServiceData(serviceDataUuid, serviceData, serviceDataMask).build();
  testReadWriteParcelForFilter(filter);
  byte[] manufacturerData = new byte[] {
      0x02, 0x15
  };
  int manufacturerId = 0xE0;
  filter = filterBuilder.setManufacturerData(manufacturerId, manufacturerData).build();
  testReadWriteParcelForFilter(filter);
  filter = filterBuilder.setServiceData(serviceDataUuid, new byte[0]).build();
  testReadWriteParcelForFilter(filter);
  byte[] manufacturerDataMask = new byte[] {
      (byte) 0xFF, (byte) 0xFF
  };
  filter =
      filterBuilder.setManufacturerData(manufacturerId, manufacturerData, manufacturerDataMask)
          .build();
  testReadWriteParcelForFilter(filter);
}
 
源代码7 项目: DeviceConnect-Android   文件: BleUuidUtils.java
/**
 * Obtains a ParcelUuid from Short style value.
 *
 * @param uuidShortValue the Short style UUID value.
 * @return an UUID instance.
 */
@NonNull
public static ParcelUuid parcelFromShortValue(final int uuidShortValue) {
    return ParcelUuid.fromString(UUID_LONG_STYLE_PREFIX + String.format("%04X", uuidShortValue & 0xffff) + UUID_LONG_STYLE_POSTFIX);
}