Android Beacon Module Titanium

Android Beacons Module Titanium (Link al repository: https://github.com/davidedepp/davidedepp-android-beacons)

Oggi torniamo ad occuparci di programmazione! Abbiamo sviluppato e lasciamo a disposizione un modulo Titanium per Android che esegue il monitoraggio dei Beacon appartenenti alla stessa regione, e permette inoltre di far diventare il dispositivo fisico un vero e proprio Beacon.

Di seguito trovate gli step da compiere per l’installazione e l’utilizzo del modulo all’interno di un progetto Appcelerator Titanium. (Piattaforma di sviluppo per App Mobile) link: http://www.appcelerator.com;

1) Copia e incolla il seguente codice xml nel file manifest di Android (tiapp.xml)
<ti:app>

<android xmlns:android=”http://schemas.android.com/apk/res/android”>
<manifest package=”[YOUR_APP_PACKAGE_NAME]”>
<uses-sdk android:minSdkVersion=”10″
android:targetSdkVersion=”18″/>
<uses-permission
android:name=”android.permission.BLUETOOTH”/>
<uses-permission
android:name=”android.permission.BLUETOOTH_ADMIN”/>
<application>
<service android:enabled=”true”
android:exported=”true”
android:isolatedProcess=”false”
android:label=”iBeacon”
android:name=”com.radiusnetworks.ibeacon.service.IBeaconService”>
</service>
<service android:enabled=”true”
android:name=”com.radiusnetworks.ibeacon.IBeaconIntentProcessor”>
<meta-data android:name=”background” android:value=”true” />
<intent-filter
android:priority=”1″ >
<action android:name=”[YOUR_APP_PACKAGE_NAME].DID_RANGING”/>
<action android:name=”[YOUR_APP_PACKAGE_NAME].DID_MONITORING”/>
</intent-filter>
</service>
</application>
</manifest>
</android>

<modules>
<module platform=”android”>com.alfonsojanus.beacons</module>
</modules>

</ti:app>

Nota Importante: Non dimenticate di sostituire la stringa [YOUR_APP_PACKAGE_NAME] con l’identificativo dell’app ES:com.companyname.app

2) Dopo aver scaricato e scompattato lo zip del modulo, copiate la cartella com.alfonsojanus.beacons in
modules/android presente nella root del vostro progetto (se non ci sono createli).
Esempio path finale: /modules/android/com.alfonsojanus.beacons

3) Prima di iniziare a usare i metodi del modulo bisogna aggiungere questo codice nel file app.js
var TiBeacons = require(‘com.alfonsojanus.beacons’);

4) Per il monitoraggio dei Beacon all’interno di una o più regioni

Esempio codice:

TiBeacons.startMonitoringForRegion({
uuid : “00000000-0000-0000-0000-000000000000”,
identifier : “Test Region 1”,
});

TiBeacons.startMonitoringForRegion({
uuid : “00000000-0000-0000-0000-000000000001”,
identifier : “Test Region 2 (group-specific)”,
major: 1
});

TiBeacons.startMonitoringForRegion({
uuid : “00000000-0000-0000-0000-000000000002”,
identifier : “Test Region 3 (device-specific)”,
major: 1,
minor: 2
});

TiBeacons.addEventListener(“enteredRegion”, alert);
TiBeacons.addEventListener(“exitedRegion”, alert);
TiBeacons.addEventListener(“determinedRegionState”, alert);

TiBeacons.setAutoRange(true);

TiBeacons.addEventListener(“beaconRanges”, function(event) {
alert(event.beacons);
});

Per tenere traccia del cambiamento della Beacon proximity:

TiBeacons.addEventListener(“beaconProximity”, function(e){
alert(“beacon “+e.major+”/”+e.minor+” is now “+e.proximity);
});

5) Per stoppare il monitoring/ranging

TiBeacons.stopRangingForAllBeacons();
TiBeacons.stopMonitoringAllRegions();

6) Per far diventare il dispositivo come un iBeacon: (funziona solo Nexus 9, Nexus 6, Samsung SM-G900F e SM-G900V)

TiBeacons.addEventListener(“advertisingStatus”, function(event) {
Ti.API.info(event.status);
});

TiBeacons.startAdvertisingBeacon({
uuid : “00000000-0000-0000-0000-000000000000”,
identifier : “TiBeacon Test”,
major: 1,
minor: 2
});

7) Controllare lo stato del Bluetooth: on/off

TiBeacons.addEventListener(“bluetoothStatus”, function(e){
if (e.status != “on”) {
Ti.API.error(“bluetooth is not on”);
}
});

TiBeacons.requestBluetoothStatus();

E questo è tutto! Speriamo di essere d’aiuto a tutti gli amici sviluppatori di beaconitaly!

Iniziare a programmare coi Beacon Estimote
Segnale beacon o segnale iBeacon?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Captcha * Time limit is exhausted. Please reload the CAPTCHA.