关于didRangeBeaconsInRegion

时间:2017-10-26 13:55:48

标签: java android beacon altbeacon

我计算了由信标定位的用户,然后想要绘制位于画布上的用户 我这样做,但背景将继续被称为 didRangeBeaconsInRegion 它是循环,它将继续检测区域信标导致后台将继续调用。 这是我计划的一部分

DrawView.java

public class DrawView extends View {

    ReceiveLocate activity;
    Bitmap bp,bg;
    Paint paint;
    public DrawView(Context context){
        super(context);
        this.activity = (ReceiveLocate) context;
        paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(25);
        bp = BitmapFactory.decodeResource(getResources(), 
                   R.drawable.greendot1);
     }
     @Override
     protected void onDraw(Canvas canvas) {
          // TODO Auto-generated method stub
          super.onDraw(canvas);
          canvas.drawText("座標 : (" + activity.X+", "+activity.Y+")", 5, 30, 
                        paint);
          canvas.drawCircle(activity.X, activity.Y, 10, paint);
          System.out.println("當前座標 = ("+activity.X+", "+activity.Y+")");
     }
}

Main2Activity.java

public class Main2Activity extends Activity implements BeaconConsumer {
      protected static final  String TAG = "Main2Activity";
      private BeaconManager beaconManager = 
                 BeaconManager.getInstanceForApplication(this);

我尝试直接在Main2Activity.java中编写,但调用 extends View extend Activity 是不同的。如何改善背景一直被称为问题?

1 个答案:

答案 0 :(得分:1)

如果您不希望在应用不在前台时获得测距回调,您可以执行以下两项操作之一:

  1. 在您的Activity中实现onPause()方法,并在那里停止测距,然后在您的Activity中实现onResume()方法并在那里重新开始。

  2. 您可以使用BackgroundPowerSaver类,如下所述: https://altbeacon.github.io/android-beacon-library/battery_manager.html。默认情况下,它仍然会在后台每5分钟进行一次测距,但您可以通过调用beaconManager.setBackgroundBetweenScanPeriod(Long.MAX_VALUE);

  3. 来有效地进行自定义