Servicio de detector de balizas de estimación en segundo plano

Estoy tratando de hacer un servicio en Android que encontraría las balizas Estimote y enviar notificaciones al usuario. He descargado código de ejemplo y creado mi nueva actividad myService usando ese código. El código se está ejecutando, y puedo ver en LogCat que Android está escaneando los beacons. Desafortunadamente no se encuentran faros. ¿Qué está mal con mi código?

O tal vez estoy haciendo esto en forma incorrecta?

package com.osos.service; import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; import com.estimote.sdk.Beacon; import com.estimote.sdk.BeaconManager; import com.estimote.sdk.BeaconManager.MonitoringListener; import com.estimote.sdk.BeaconManager.RangingListener; import com.estimote.sdk.Region; import com.estimote.sdk.utils.L; import android.R; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.IBinder; import android.os.RemoteException; import android.support.v4.app.TaskStackBuilder; import android.util.Log; import android.widget.TextView; import android.widget.Toast; public class MyService extends Service{ private static final int NOTIFICATION_ID = 123; private BeaconManager beaconManager; Beacon beacon; private NotificationManager myNotificationManager; private NotificationManager notificationManager; private static final String TAG = "MyService"; private static final Region ALL_ESTIMOTE_BEACONS_REGION = new Region("rid", null, null, null); @Override public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { beaconManager = new BeaconManager(this); beaconManager.setBackgroundScanPeriod(TimeUnit.SECONDS.toMillis(1), 0); // beaconManager.setRangingListener(new RangingListener() { // // @Override // public void onBeaconsDiscovered(Region arg0, List<Beacon> beacons_list) { // // TODO Auto-generated method stub // // } // }); Toast.makeText(this, "Jus paleidote OSOS serviza", Toast.LENGTH_LONG).show(); Log.d(TAG, "onCreate"); L.enableDebugLogging(true); Log.d(TAG, "onStartCOmmand"); try{ connectToService(); }catch(Exception e){ System.out.println("### problem ####"); System.out.println(e); } } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d(TAG, "onStartCOmmand"); beaconManager.setMonitoringListener(new MonitoringListener() { @Override public void onEnteredRegion(Region region, List<Beacon> beacons) { switch(beacon.getMinor()){ case 11111: displayNotificationOne(1,"This is OSOS"); break; default: displayNotificationOne(1,"This is Sparta"); } } @Override public void onExitedRegion(Region region) { displayNotificationOne(2,"Exited OSOS"); } }); return startId; } protected void displayNotificationOne(int i, String msg) { Log.d(TAG, "Display notif"); // Invoking the default notification service Notification.Builder mBuilder = new Notification.Builder(this); mBuilder.setContentTitle("Simplify"); mBuilder.setContentText("Jus turite nauju uzduociu"); mBuilder.setTicker("Simplify: Jus turite nauju uzduociu"); mBuilder.setSmallIcon(R.drawable.arrow_up_float).setAutoCancel(true).build(); long[] vibrate = {0,200,500 }; mBuilder.setVibrate(vibrate); //mBuilder.setSound(Uri.parse("android.resource://" + this.getPackageName() + "/" + R.raw.groan)); // Increase notification number every time a new notification arrives mBuilder.setAutoCancel(true); // Creates an explicit intent for an Activity in your app // Intent resultIntent = new Intent(this, Welcome.class); // This ensures that navigating backward from the Activity leads out of // the app to Home page TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); // Adds the back stack for the Intent // stackBuilder.addParentStack(StartedReviewsActivity.class); // Adds the Intent that starts the Activity to the top of the stack // stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_ONE_SHOT // can only be used once ); // start the activity when the user clicks the notification text mBuilder.setContentIntent(resultPendingIntent); myNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // pass the Notification object to the system myNotificationManager.notify(1, mBuilder.build()); } private void connectToService() { Log.e(TAG, "Connect to service"); // getActionBar().setSubtitle("Scanning..."); // adapter.replaceWith(Collections.<Beacon>emptyList()); beaconManager.connect(new BeaconManager.ServiceReadyCallback() { @Override public void onServiceReady() { try { beaconManager.startRanging(ALL_ESTIMOTE_BEACONS_REGION); } catch (RemoteException e) { Log.e(TAG, "Cannot start ranging", e); } } }); } @Override public void onDestroy() { Toast.makeText(this, "MyService Stopped", Toast.LENGTH_LONG).show(); Log.d(TAG, "onDestroy"); beaconManager.disconnect(); } } 

Sí, es porque no cambió el número UUID, MAJOR y MENOR de la baliza. Descargue la aplicación estimote sdk en su teléfono y luego puede obtener los tres números de reemplazarlos por el que ya tiene. Comenzará a funcionar.

  • ¿Cómo obtener respuestas más rápidas con AltBeacon?
  • Combine iBeacon bluetooth de baja energía con Android 4.3
  • ¿Por qué isMultipleAdvertisementSupported () devuelve false, cuando getBluetoothLeAdvertiser devuelve un objeto?
  • Cómo identificar Eddystone URL y uid?
  • Estimación de la seguridad de la baliza
  • IBeacons - Compañía (Estimate, Gimbal, etc.) SDKs contra la biblioteca de Android / iOS
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • ¿Cómo detectar múltiples balizas usando la biblioteca de Altbeacon android?
  • Variaciones de rango de ibeacon de Radius Networks
  • AltBeacon onBeaconServiceConnect no se llama
  • ¿Funciona BluetoothLeAdvertiser en un Nexus 5 con Android 5.0?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.