本文整理汇总了Java中android.bluetooth.le.ScanResult.getScanRecord方法的典型用法代码示例。如果您正苦于以下问题:Java ScanResult.getScanRecord方法的具体用法?Java ScanResult.getScanRecord怎么用?Java ScanResult.getScanRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.bluetooth.le.ScanResult
的用法示例。
在下文中一共展示了ScanResult.getScanRecord方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
if (result.getScanRecord() != null) {
List<ParcelUuid> uuids = result.getScanRecord().getServiceUuids();
if (uuids != null) {
for (ParcelUuid uuid : uuids) {
if (uuid.getUuid().equals(BleService.FIND_ME_SERVICE)) {
if (!currentAddresses.contains(result.getDevice().getAddress()))
viewStatePublisher.onNext(
new NewDevicesViewState.NewDeviceState(
result.getDevice().getAddress(),
result.getScanRecord().getDeviceName())
);
break;
}
}
}
}
}
示例2: convertBleDevice
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public BleDevice convertBleDevice(ScanResult scanResult) {
if (scanResult == null) {
throw new IllegalArgumentException("scanResult can not be Null!");
}
BluetoothDevice bluetoothDevice = scanResult.getDevice();
int rssi = scanResult.getRssi();
ScanRecord scanRecord = scanResult.getScanRecord();
byte[] bytes = null;
if (scanRecord != null)
bytes = scanRecord.getBytes();
long timestampNanos = scanResult.getTimestampNanos();
return new BleDevice(bluetoothDevice, rssi, bytes, timestampNanos);
}
示例3: ScanResultCompat
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
ScanResultCompat(ScanResult result) {
mDevice = result.getDevice();
mScanRecord = new ScanRecordCompat(result.getScanRecord());
mRssi = result.getRssi();
mTimestampNanos = result.getTimestampNanos();
}
示例4: beaconFromScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
protected static Beacon beaconFromScanResult(ScanResult scanResult) {
ScanRecord scanRecord = scanResult.getScanRecord();
if (scanRecord == null) {
return null;
}
FrameType type;
Integer txPower;
double rssi = scanResult.getRssi();
byte[] bytes = scanRecord.getServiceData(EDDYSTONE_SPEC);
String identifier = scanResult.getDevice().getAddress();
txPower = txPowerFromBytes(bytes);
if (txPower != null) {
Beacon beacon = new Beacon(rssi, txPower, identifier);
beacon.parseScanResult(scanResult);
return beacon;
}
return null;
}
示例5: processResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
private void processResult(ScanResult result) {
ScanRecord record = result.getScanRecord();
if (record == null || record.getServiceData(UID_SERVICE) == null) {
Log.w(TAG, "Invalid Eddystone scan result.");
return;
}
//Convert scan result into an AdvertisedId
Beacon.AdvertisedId advertisedId =
Beacon.AdvertisedId.fromAdvertisement(record.getServiceData(UID_SERVICE));
final Beacon discovered = new Beacon(advertisedId, Beacon.Status.STATUS_UNSPECIFIED);
//Scan callbacks are not on the main thread
runOnUiThread(new Runnable() {
@Override
public void run() {
//Notify the adapter, and get beacon resource from API
boolean added = mAdapter.addDiscoveredBeacon(discovered);
if (added) {
mProximityApi.getBeacon(discovered.advertisedId);
}
}
});
}
示例6: createCallback
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
private static android.bluetooth.le.ScanCallback createCallback(ScanCallback scanCallback) {
return new android.bluetooth.le.ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
BluetoothDevice device = result.getDevice();
int rssi = result.getRssi();
byte[] scanRecord = (result.getScanRecord() != null ? result.getScanRecord().getBytes() : null);
scanCallback.onDeviceFound(device, rssi, scanRecord);
super.onScanResult(callbackType, result);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
}
};
}
示例7: onScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
/**
* Callback when a BLE advertisement has been found.
*
* @param callbackType Determines how this callback was triggered.
* @param result A Bluetooth LE scan result.
*/
@Override
public void onScanResult(int callbackType, final ScanResult result) {
super.onScanResult(callbackType, result);
// Get the ScanRecord and check if it is defined (is nullable)
final ScanRecord scanRecord = result.getScanRecord();
if (scanRecord != null) {
// Check if the Service UUIDs are defined (is nullable) and contain the discovery
// UUID
final List<ParcelUuid> serviceUuids = scanRecord.getServiceUuids();
if (serviceUuids != null && serviceUuids.contains(DISCOVERY_UUID)) {
// We have found our device, so update the GUI, stop scanning and start
// connecting
final BluetoothDevice device = result.getDevice();
// We'll make sure the GUI is updated on the UI thread
runOnUiThread(new Runnable() {
@Override
public void run() {
// At this point we have the device address and RSSI, so update those
deviceAddressTextView.setText(device.getAddress());
rssiTextView.setText(getString(R.string.rssi, result.getRssi()));
}
});
stopDiscovery();
bluetoothGatt = device.connectGatt(
MainActivity.this,
// False here, as we want to directly connect to the device
false,
bluetoothGattCallback
);
}
}
}
示例8: ScanResultCompat
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
ScanResultCompat(ScanResult result) {
mDevice = new BluetoothLeDevice(result.getDevice(), result.getRssi(), result.getScanRecord().getBytes(), System.currentTimeMillis());//result.getTimestampNanos()
mScanRecord = new ScanRecordCompat(result.getScanRecord());
mRssi = result.getRssi();
mTimestampNanos = System.currentTimeMillis();//result.getTimestampNanos();
}
示例9: initScanData
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
private void initScanData() {
scanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
Log.i(TAG, "onScanResult" + result);
String address = result.getDevice().getAddress();
String name;
ScanRecord scanRecord = result.getScanRecord();
name = scanRecord == null ? "unknown" : scanRecord.getDeviceName();
scanResultListener.onResultReceived(name, address);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
Log.e(TAG, "onBatchScanResults");
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
Log.e(TAG, "onScanFailed");
scanResultListener.onScanFailed(errorCode);
}
};
filters = new ArrayList<>();
filters.add(new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(BLEProfile.UUID_SERVICE)).build());
scanSettings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
}
示例10: processResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
private void processResult(ScanResult result) {
Log.i(TAG, "New LE Device: " + result.getDevice().getName() + " @ " + result.getRssi());
/*
* Create a new beacon from the list of obtains AD structures
* and pass it up to the main thread
*/
TemperatureBeacon beacon = new TemperatureBeacon(result.getScanRecord(),
result.getDevice().getAddress(),
result.getRssi());
mHandler.sendMessage(Message.obtain(null, 0, beacon));
}
示例11: onScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
BleLog.i(TAG, "onScanResult: " + callbackType + " ScanResult:" + result);
if (result.getScanRecord() != null) {
mScanCallback.onBleScan(result.getDevice(), result.getRssi(), result.getScanRecord().getBytes());
}
}
示例12: onScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@Override
@RequiresPermission(allOf = {
Manifest.permission.BLUETOOTH,
Manifest.permission.BLUETOOTH_ADMIN,
})
public void onScanResult(int callbackType, ScanResult result) {
if (result.getScanRecord() == null) {
return;
}
BluetoothDevice device = result.getDevice();
String address = device.getAddress();
ScannedPeripheral existingResult = results.get(address);
if (existingResult != null) {
existingResult.rssi = result.getRssi();
return;
}
byte[] scanResponse = result.getScanRecord().getBytes();
AdvertisingData advertisingData = AdvertisingData.parse(scanResponse);
logger.info(BluetoothStack.LOG_TAG, "Found device " + device.getName() + " - " + address + " " + advertisingData);
if (!peripheralCriteria.matches(advertisingData)) {
return;
}
if (hasAddresses && !peripheralCriteria.peripheralAddresses.contains(address)) {
return;
}
results.put(address, new ScannedPeripheral(device, advertisingData, result.getRssi()));
if (results.size() >= peripheralCriteria.limit) {
logger.info(BluetoothStack.LOG_TAG, "Discovery limit reached, concluding scan");
onConcludeScan();
}
}
示例13: processResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
private void processResult(ScanResult result) {
ScanRecord record = result.getScanRecord();
if (record == null) {
Log.w(TAG, "Invalid scan record.");
return;
}
final byte[] data = record.getServiceData(UID_SERVICE);
if (data == null) {
Log.w(TAG, "Invalid Eddystone scan result.");
return;
}
final String deviceAddress = result.getDevice().getAddress();
final int rssi = result.getRssi();
byte frameType = data[0];
switch (frameType) {
case TYPE_UID:
mCallbackHandler.post(new Runnable() {
@Override
public void run() {
processUidPacket(deviceAddress, rssi, data);
}
});
break;
case TYPE_TLM:
case TYPE_URL:
//Do nothing, ignoring these
return;
default:
Log.w(TAG, "Invalid Eddystone scan result.");
}
}
示例14: onScanResult
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
ScanRecord record = result.getScanRecord();
if(record!=null)
mCallbackPre21.onLeScan(result.getDevice(),result.getRssi(),record.getBytes());
}
示例15: BLEScanner
import android.bluetooth.le.ScanResult; //导入方法依赖的package包/类
public BLEScanner(final Activity activity, int requestEnableBluetooth, @NonNull OnClosestChangedListener onClosestChangedListener) {
mRequestEnableBluetooth = requestEnableBluetooth;
mOnClosestChangedListener = onClosestChangedListener;
init(activity);
scanFilters = new ArrayList<>();
scanFilters.add(new ScanFilter.Builder().setServiceUuid(EDDYSTONE_SERVICE_UUID).build());
scanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
ScanRecord scanRecord = result.getScanRecord();
if (scanRecord == null) {
return;
}
String deviceAddress = result.getDevice().getAddress();
Beacon beacon;
if (!deviceToBeaconMap.containsKey(deviceAddress)) {
beacon = new Beacon(deviceAddress, result.getRssi());
deviceToBeaconMap.put(deviceAddress, beacon);
} else {
deviceToBeaconMap.get(deviceAddress).lastSeenTimestamp = System.currentTimeMillis();
deviceToBeaconMap.get(deviceAddress).rssi = result.getRssi();
}
byte[] serviceData = scanRecord.getServiceData(EDDYSTONE_SERVICE_UUID);
validateServiceData(deviceAddress, serviceData);
findClosest();
}
@Override
public void onScanFailed(int errorCode) {
switch (errorCode) {
case SCAN_FAILED_ALREADY_STARTED:
logErrorAndShowToast(activity, "SCAN_FAILED_ALREADY_STARTED");
break;
case SCAN_FAILED_APPLICATION_REGISTRATION_FAILED:
logErrorAndShowToast(activity, "SCAN_FAILED_APPLICATION_REGISTRATION_FAILED");
break;
case SCAN_FAILED_FEATURE_UNSUPPORTED:
logErrorAndShowToast(activity, "SCAN_FAILED_FEATURE_UNSUPPORTED");
break;
case SCAN_FAILED_INTERNAL_ERROR:
logErrorAndShowToast(activity, "SCAN_FAILED_INTERNAL_ERROR");
break;
default:
logErrorAndShowToast(activity, "Scan failed, unknown error code");
break;
}
}
};
}