12/08/2018, 13:43

Android - Ibeacon

Android - Ibeacon I. Giới thiệu Cái tên "Ibeacon" là nhãn hiệu hàng hoá của Apple cho một hệ thống định vị trong nhà. Ibeacon là một địa điểm nhận thức, cảm biến nhỏ không dây có thể xác định vị trí của người sử dụng trong một cửa hàng . iBeacons có thể gửi thông báo của các mặt hàng ...

Android - Ibeacon

I. Giới thiệu

  • Cái tên "Ibeacon" là nhãn hiệu hàng hoá của Apple cho một hệ thống định vị trong nhà.
  • Ibeacon là một địa điểm nhận thức, cảm biến nhỏ không dây có thể xác định vị trí của người sử dụng trong một cửa hàng .
  • iBeacons có thể gửi thông báo của các mặt hàng gần đó được bán hoặc những mặt hàng khách hàng có thể tìm kiếm , và nó có thể cho phép thanh toán tại các điểm bán hàng (POS).
  • Công nghệ Ibeacon hoạt động trên công nghệ Bluetooth Low Energy BLE ( Bluetooth thông minh ). cho phép gửi tín hiệu dữ liệu đến các thiết bị IOS, Android...
  • iBeacon được giới thiệu trong sự kiện cập nhật thông tin về iOS 7 của Apple, và được triển khai trong hệ thống cửa hàng của Apple Stores từ tháng 12, năm 2013.
  • Đối thủ của nó là công nghệ NFC

II. Ibeacon - Android

  • Đặc điểm

    • Version tương thích: Android 4.3 trở lên.
    • Khoảng cách tối đa Ibeacon hoạt động 40m.
    • Thông số cơ bản
      • UUIDs: là id của mỗi ibeacon có dạng ( f7826da6-4fa2-4e98-8024-bc5b71e0893e ).
      • Major: giá trị phần biệt các nhóm trong ibeacon.
      • Minor: Phân biệt 1 cá nhân trong nhóm (Major).
    • Thư viện hỗ trợ sử dụng Ibeacon trong Android: https://github.com/AltBeacon/android-beacon-library
  • Sử dụng Ibeacon trong Android

    • Sử dụng thư viện
    compile 'org.altbeacon:android-beacon-library:${altbeacon.version}'
  • Đăng ký các Permission
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

1. Nhận tin hiệu Ibeacon - Thiết bị Android có thể dò tìm các thiết bị phát ibeacon xung quanh. - Khi các beacon được phát hiện ra sẽ xuất hiện trong hàm didRangeBeaconsInRegion kết quả trả về là 1 danh sách các beacon.

         public class IbeaconActivity extends Activity implements BeaconConsumer {
            protected static final String TAG = "RangingActivity";
            private BeaconManager beaconManager;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_ibeacon);
                beaconManager = BeaconManager.getInstanceForApplication(this);
                beaconManager.bind(this);
            }
            @Override
            protected void onDestroy() {
                super.onDestroy();
                beaconManager.unbind(this);
            }
            @Override
            public void onBeaconServiceConnect() {
                beaconManager.setRangeNotifier(new RangeNotifier() {
                    @Override
                    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
                        if (beacons.size() > 0) {
                            //The first beacon I see is about
                        }
                    }
                });

                try {
                    beaconManager.startRangingBeaconsInRegion(new Region("myUniqueId", null, null, null));
                } catch (RemoteException e) {}
            }
         }

2. Phát tin hiệu Ibeacon - Yêu cầu version >= Android 5.0 - Biến thiết bị Android thành 1 ibeacon

          public class MyApplication extends Application implements BootstrapNotifier {
            private BackgroundPowerSaver backgroundPowerSaver;

            public void onCreate() {
                super.onCreate();
                // Simply constructing this class and holding a reference to it in your custom Application
                // enables auto battery saving of about 60%
                backgroundPowerSaver = new BackgroundPowerSaver(this);
            }
            Beacon beacon = new Beacon.Builder()
            .setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
            .setId2("1")
            .setId3("2")
            .setManufacturer(0x0118)
            .setTxPower(-59)
            .setDataFields(Arrays.asList(new Long[] {0l}))
            .build();
            BeaconParser beaconParser = new BeaconParser()
                    .setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25");
            BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
            beaconTransmitter.startAdvertising(beacon);
           }
  • Ứng dụng Ibeacon trong thực tế
    • Bạn sẽ cảm thấy thế nào khi vào siêu thị mở thiết bị smartphone của mình lên, tất các sản phầm xung quang bạn sẽ hiển thị trên màn hình điện thoại và nhiệm vụ của bạn chỉ đơn giản là chọn sản phẩm mình thích và mang về. Đó chỉ là 1 ví dụ nhỏ về sự hiệu quả và tiện ích của Ibeacon đem lại.
    • Chỉ dựa và 1 phương thức phát tín hiệu qua Bluetooth mà hiệu quả của Ibeacon mang lại không hề nhỏ chút nào.
    • Với giá thành thấp chỉ từ 10-30$$cho 1 thiết bị, phương thức điều khiển hoạt động đơn giản dễ dàng. Chúng ta có thể áp dụng chúng ở nhiều lĩnh vực khác trong cuộc sống.
    • Beacon đang mở ra cho thế giới kinh doanh và các nhà phát triển ứng dụng một cơ hội mới.

..................................................................

Source: http://altbeacon.github.io/android-beacon-library/

Xin cảm ơn các bạn đã đọc !

0