0

このコードを使用して Eddystone-URL を送信しようとしていました:

try
{
    byte[] urlBytes = UrlBeaconUrlCompressor.compress("http://google.com");
    Identifier encodedUrlIdentifier = Identifier.fromBytes(urlBytes, 0, urlBytes.length, false);
    ArrayList<Identifier> identifiers = new ArrayList<Identifier>();
    identifiers.add(encodedUrlIdentifier);
    Beacon beacon = new Beacon.Builder()
            .setIdentifiers(identifiers)
            .setManufacturer(0x0188)
            .setTxPower(-7)
            .build();
    BeaconParser beaconParser = new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_URL_LAYOUT);
    BeaconTransmitter beaconTransmitter = new BeaconTransmitter(getApplicationContext(), beaconParser);
    beaconTransmitter.setAdvertiseTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH);
    beaconTransmitter.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY);
    beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback()
    {
        @Override
        public void onStartFailure(int errorCode)
        {
            Log.e(TAG, "Advertisement start failed with code: " + errorCode);
        }

        @Override
        public void onStartSuccess(AdvertiseSettings settingsInEffect)
        {
            Log.i(TAG, "Advertisement start succeeded.");
        }
    });
}
catch (MalformedURLException e)
{
    Log.d(TAG, "That URL cannot be parsed");
}

このアプリを使用して、2 番目のデバイスで送信されたビーコンを見ることができます: https://play.google.com/store/apps/details?id=com.uriio&hl=pl

しかし、このビーコンは 2 台目のデバイスの Chrome Physical Web には表示されません。BeaconToy アプリを使用して Eddystone-URL ビーコンを送信すると、2 番目のデバイスが Chrome Physical Web と BeaconToy の両方でこのビーコンを検出しました。

送信コードに何かがありますか、それとも altbeacon のバグですか?

4

1 に答える 1

1

これは、Android ビーコン ライブラリ 2.8.1 で新たに確認されたバグです。修正が提案されており、リリースは週末までに予定されています。詳細はこちらをご覧ください:

https://github.com/AltBeacon/android-beacon-library/pull/401

于 2016-07-20T22:46:15.827 に答える