使用altbeacon库检测iBeacon

时间:2014-10-28 11:40:01

标签: android eclipse ibeacon altbeacon

我正在开发项目使用iBeacons库

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

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

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

2 个答案:

答案 0 :(得分:2)

希望这样能帮到你

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>

答案 1 :(得分:0)

传递major和minor代替null

  Region region = new Region("myRangingUniqueId", uUID, major, minor);