Introduction of Eddystone

download Introduction of Eddystone

of 28

  • date post

    13-Apr-2017
  • Category

    Engineering

  • view

    2.825
  • download

    3

Embed Size (px)

Transcript of Introduction of Eddystone

  • Introduction of Eddystone

    Shibuya.apk #3Namito Satoyama

  • About MeNamito SatoyamaFujitsu FIP Corp. (2001)UL Systems, Inc. (2006)CyberAgent, Inc. (2010)

    DeNA Co., Ltd. (2013)Yahoo Japan Corp. (2014)

    GMO System Consulting, Inc. (2012)

    - Shibuya.apk - Android - CAMP - groovy - mobage - hackadoll

  • What is Eddystone ?

  • EddystoneBLEBluetooth Low EnergyBeacon

    GoogleAppleiBeaconiBeaconAndroid/iOSiBeacon

    https://github.com/google/eddystoneGithub

    https://github.com/google/eddystone

  • Eddystone

  • NFC

    beacon

    poster

    O2O

  • iBeacon

    iBeacon Eddystone-UID

    Eddystone-URL

    EddyStone-TLM

    ID

    iBeacon

    IDURL

    iBeacon1Eddystone

    iBeacon Eddystone

  • Proximity BeaconsNearby APIProximity Beacon APINearby API

  • Partnerbeacon

  • estimote beaconsestimote beaconsiBeacon

  • estimote beaconsBeaconBeacon

  • estimote beacons

  • TxEddystone-UIDEddystone-UIDgithubBeaconAndroid 5.0BLE Advertising

    moto x (2nd gen)

  • Eddystone-URLEddystone-URLURLBeacon

    URL

  • Chrome7/22Chrome 44iOSEddystonebeaconiPhonebeaconURL

  • Android

  • Eddystone ValidatorgithubEddystoneAndroid 5.1https://github.com/google/eddystone/tree/master/tools/eddystone-validator

    https://github.com/google/eddystone/tree/master/tools/eddystone-validator

  • Permission

    Features

    Implementation

  • android.bluetooth.le.BluetoothLeScanner

    BluetoothManager manager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE) ;BluetoothAdapter adapter = manager.getAdapter();

    if( ! adapter.isEnabled() ){ // request Bluetooth Access Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(intent, REQUEST_ID);}

    BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();

    Implementation

  • android.bluetooth.le.ScanSettings

    ScanSettings settings = ScanSettings.Builder() .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) .setReportDelay(0) .build();

    Implementation

    BLE ScanMode

  • android.bluetooth.le.ScanFilter

    ParcelUuid serviceUuid = ParcelUuid.fromString(0000FEAA-0000-1000-8000-00805F9B34FB);ScanFilter filter = new ScanFilter.Builder.setServiceUuid(serviceUuid).build();List filters = new ArrayList();filters.add(filter);

    Implementation

    BLE Service FilteringEddystone UUID: 0000FEAA-0000-1000-8000-00805F9B34FB

  • Scanscanner.startScan(filters, settings, new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { // result handling ScanRecord scanRecord = result.getScanRecord(); byte[] serviceData = scanRecord.getServiceData(serviceUuid); } @Override public void onScanFailed(int errorCode) { // error handling }});

    Implementation

  • Data Convert

    Implementation

    switch (serviceData[0]) { case 0x00: // Edystone-UID handling break; case 0x10: // Edystone-URL handling break; case 0x20: // Edystone-TLM handling break; default: break;}

    1FrameTypeType

    Edystone-URL Frame Spec

  • EddystoneiBeaconEddystoneNFCO2ONFCEddystone ReadybeaconChromeAndroidEddystoneNFCOS

  • Thanks