1

我正在开发项目使用 iBeacons 库

这是识别我的 Beacon 的代码吗?

beaconManager.startMonitoringBeaconsInRegion(new Region("D1B024CB-A02D-4650-9C6A-BAEDA8A31F0E", null, null, null));

我有 UUID Major 和 Minor,如何使用它们?

4

2 回答 2

1

希望这会对你有所帮助

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

    private static final String UUID = "XXXXXXXXXXXXXXXXXXXX";
    private BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ranging);
        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) {
                Log.i(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");     
            }
        }
        });

        try {
            beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", Identifier.parse(UUID), null, null));
        } catch (RemoteException e) {   }

        beaconManager.getBeaconParsers().add(new BeaconParser()
           .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));

    }
}

AndroidManifest.xml 中的权限

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

登记

       <service
            android:name="org.altbeacon.beacon.service.BeaconService"
            android:enabled="true"
            android:exported="true"
            android:isolatedProcess="false"
            android:label="beacon" >
        </service>
        <service
            android:name="org.altbeacon.beacon.BeaconIntentProcessor"
            android:enabled="true" >
        </service>

         <receiver android:name="org.altbeacon.beacon.startup.StartupBroadcastReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            </intent-filter>
        </receiver>
于 2014-10-28T13:00:17.760 回答
0

通过major 和minor 代替null

  Region region = new Region("myRangingUniqueId", uUID, major, minor);
于 2014-10-28T11:54:49.413 回答