예제 #1
0
        public void StartAdvertising(UserDataModel userData)
        {
            Beacon beacon = new Beacon.Builder()
                            .SetId1(AppConstants.iBeaconAppUuid)
                            .SetId2(userData.Major)
                            .SetId3(userData.Minor)
                            .SetTxPower(-59)
                            .SetManufacturer(AppConstants.CompanyCoreApple)
                            .Build();

            BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(AppConstants.iBeaconFormat);

            _beaconTransmitter = new BeaconTransmitter(_mainActivity, beaconParser);
            _beaconTransmitter.StartAdvertising(beacon);
        }
예제 #2
0
        public void StartAdvertising()
        {
            Beacon beacon = new Beacon.Builder()
                            .SetId1(AppConstants.AppUUID)
                            .SetId2("2111")
                            .SetId3("3123")
                            .SetTxPower(-59)
                            .SetManufacturer(AppConstants.COMPANY_CODE_APPLE)
                            .Build();

            // iBeaconのバイト列フォーマットをBeaconParser(アドバタイズ時のバイト列定義)にセットする。
            BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(AppConstants.IBEACON_FORMAT);

            // iBeaconの発信を開始する。
            _beaconTransmitter = new BeaconTransmitter(Application.Context, beaconParser);
            _beaconTransmitter.StartAdvertising(beacon);
        }
예제 #3
0
        public async void StartAdvertisingBeacons(UserDataModel userData)
        {
            await Task.Run(() =>
            {
                Beacon beacon = new Beacon.Builder()
                                .SetId1(AppConstants.iBeaconAppUuid)
                                .SetId2(userData.Major)
                                .SetId3(userData.Minor)
                                .SetTxPower(-59)
                                .SetManufacturer(AppConstants.CompanyCodeApple)
                                .Build();

                BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(AppConstants.iBeaconFormat);

                _beaconTransmitter = new BeaconTransmitter(this, beaconParser);
                _beaconTransmitter.StartAdvertising(beacon);
            });
        }
        /// <summary>
        /// iBeacon発信開始処理(UUID、Major、Minorを直指定して発信)
        /// </summary>
        /// <param name="uuid">UUID</param>
        /// <param name="major">Major</param>
        /// <param name="minor">Minor</param>
        public void StartTransmission(Guid uuid, ushort major, ushort minor, sbyte txPower)
        {
            // Android用のビーコン定義を作成
            Beacon beacon = new Beacon.Builder()
                            .SetId1(uuid.ToString())
                            .SetId2(major.ToString())
                            .SetId3(minor.ToString())
                            .SetTxPower(txPower)
                            .SetManufacturer(Const.COMPANY_CODE_APPLE)
                            .Build();

            // iBeaconのバイト列フォーマットをBeaconParser(アドバタイズ時のバイト列定義)にセットする。
            BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(IBEACON_FORMAT);

            // iBeaconの発信を開始する。
            _beaconTransmitter = new BeaconTransmitter(Android.App.Application.Context, beaconParser);
            _beaconTransmitter.StartAdvertising(beacon);
        }
예제 #5
0
        public void StartAdvertising(UserDataModel userData)
        {
            // TODO 出力調整どうするか考える。

            Beacon beacon = new Beacon.Builder()
                            .SetId1(AppConstants.iBeaconAppUuid)
                            .SetId2(userData.Major)
                            .SetId3(userData.Minor)
                            .SetTxPower(-59)
                            .SetManufacturer(AppConstants.CompanyCoreApple)
                            .Build();

            // iBeaconのバイト列フォーマットをBeaconParser(アドバタイズ時のバイト列定義)にセットする。
            BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(AppConstants.iBeaconFormat);

            // iBeaconの発信を開始する。
            _beaconTransmitter = new BeaconTransmitter(_mainActivity, beaconParser);
            _beaconTransmitter.StartAdvertising(beacon);
        }
예제 #6
0
        public void StartAdvertising(UserData userData)
        {
            // TODO 出力調整どうするか考える。

            Beacon beacon = new Beacon.Builder()
                            .SetId1(AppConstants.AppUUID)
                            .SetId2(userData.Major)
                            .SetId3(userData.Minor)
                            .SetTxPower(-59)
                            .SetManufacturer(AppConstants.COMPANY_CODE_APPLE)
                            .Build();

            // iBeaconのバイト列フォーマットをBeaconParser(アドバタイズ時のバイト列定義)にセットする。
            BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(AppConstants.IBEACON_FORMAT);

            // iBeaconの発信を開始する。
            _beaconTransmitter = new BeaconTransmitter(_mainActivity, beaconParser);
            _beaconTransmitter.StartAdvertising(beacon);
        }
예제 #7
0
        public async Task <bool> StartBroadcastingBle(Context context, Shoot ev)
        {
            //ask to turn on bluetooth:
            BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.DefaultAdapter;

            var allprefs = context.GetSharedPreferences(WhiteLabelConfig.BUILD_VARIANT.ToLower(), FileCreationMode.Private);
            //var prefs = allprefs.Edit();
            var useble = allprefs.GetBoolean("ble-" + ev.id, true);

            //prefs.PutInt("ble_enable", currentversion);
            //prefs.Apply();
            if (!useble)
            {
                return(false);
            }

            if (mBluetoothAdapter.State == State.Off)
            {
                //ask to turn on:
                TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>();
                var dialog = new Android.Support.V7.App.AlertDialog.Builder(context);
                dialog.SetTitle(Resource.String.enableble);
                dialog.SetMessage(Resource.String.blemessage);
                dialog.SetPositiveButton(Android.Resource.String.Yes, (o, e) =>
                {
                    tcs.SetResult(true);
                });

                dialog.SetNegativeButton(Android.Resource.String.No, (o, e) =>
                {
                    tcs.SetResult(false);
                });

                dialog.Show();

                var result = await tcs.Task;
                if (result)
                {
                    allprefs.Edit().PutBoolean("ble-" + ev.id, true).Apply();

                    //turn on ble
                    mBluetoothAdapter.Enable();
                    //need to wait for ble event saying its started here:
                    await Task.WhenAny(Task.Delay(3000), Task.Factory.StartNew(() =>
                    {
                        while (mBluetoothAdapter.State != State.On)
                        {
                            Task.Yield();
                        }
                    }));
                }
                else
                {
                    allprefs.Edit().PutBoolean("ble-" + ev.id, false).Apply();
                    return(false);
                }
            }

            var compat = BeaconTransmitter.CheckTransmissionSupported(context);

            if (compat == BeaconTransmitter.Supported)
            {
                try
                {
                    byte[] urlBytes = UrlBeaconUrlCompressor.Compress("https://" + WhiteLabelConfig.BEACONHOST + "/b/");// 91071");//+ev.offlinecode);
                    //HACK: remove line!
                    //ev.offlinecode = "91071";
                    List <byte> bytes = new List <byte>(urlBytes);
                    bytes.AddRange(Encoding.ASCII.GetBytes(ev.offlinecode));

                    urlBytes = bytes.ToArray();

                    Identifier        encodedUrlIdentifier = Identifier.FromBytes(urlBytes, 0, urlBytes.Length, false);
                    List <Identifier> identifiers          = new List <Identifier>();
                    identifiers.Add(encodedUrlIdentifier);
                    beacon = new Beacon.Builder()
                             .SetIdentifiers(identifiers)
                             .SetServiceUuid(0xfeaa)
                             .SetManufacturer(0x0118)
                             .SetBeaconTypeCode(0x10)
                             .SetTxPower(-59)
                             .Build();
                    BeaconParser beaconParser = new BeaconParser().SetBeaconLayout(BeaconParser.EddystoneUrlLayout);

                    beaconTransmitter = new BeaconTransmitter(context, beaconParser);

                    beaconTransmitter.StartAdvertising(beacon, this);
                }
                catch (MalformedURLException)
                {
                    Log.Debug("BOOTLEGGER", "That URL cannot be parsed");
                }
                return(true);
            }
            else
            {
                //not supported
                return(false);
            }
        }