Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用android上的altbeacon库在后台检测信标_Android_Altbeacon_Beacon_Eddystone - Fatal编程技术网

无法使用android上的altbeacon库在后台检测信标

无法使用android上的altbeacon库在后台检测信标,android,altbeacon,beacon,eddystone,Android,Altbeacon,Beacon,Eddystone,我的用例非常简单,我只想在用户靠近信标时用给定的UID检测我的信标。 应用程序应该每隔60秒在后台查找一次信标 我的目标是安卓棉花糖和更高版本,所以我要确保位置是从设置和运行时权限的罚款位置也包括在内 使用下面的代码,我在非常不一致的基础上检测到背景中的信标,并且不是每60秒检测一次 这是我用来检测信标的代码:- public class MyApplication extends Application implements BootstrapNotifier { private st

我的用例非常简单,我只想在用户靠近信标时用给定的UID检测我的信标。 应用程序应该每隔60秒在后台查找一次信标

我的目标是安卓棉花糖和更高版本,所以我要确保位置是从设置和运行时权限的罚款位置也包括在内

使用下面的代码,我在非常不一致的基础上检测到背景中的信标,并且不是每60秒检测一次

这是我用来检测信标的代码:-

public class MyApplication extends Application implements BootstrapNotifier {
    private static final String TAG = "radbeacon";

    @Override
    public void onCreate() {
        super.onCreate();
        scanBeacons();
    }

    @Override
    public void didDetermineStateForRegion(int arg0, Region arg1) {
        // Don't care
    }

    @Override
    public void didEnterRegion(Region arg0) {
        Intent intent = new Intent(this, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        this.startActivity(intent);
    }

    @Override
    public void didExitRegion(Region arg0) {
        // Don't care
    }

    private void scanBeacons()
    {
        RegionBootstrap regionBootstrap;
        BackgroundPowerSaver backgroundPowerSaver;
        BeaconManager beaconManager;
        beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().clear();
        beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));
        Identifier identifier = Identifier.parse("0xe2bfcc3cc2370789caef");
        Region region = new Region("my-beacon-region",identifier,null,null);

        beaconManager.setBackgroundBetweenScanPeriod(60000L);
        beaconManager.setBackgroundScanPeriod(2000L);


        try
        {
            beaconManager.updateScanPeriods();
        }
        catch (RemoteException e){e.printStackTrace();}

        regionBootstrap = new RegionBootstrap(this,region);
        backgroundPowerSaver = new BackgroundPowerSaver(this);
    }
}

我需要对现有代码进行哪些更改才能获得所需的功能?谢谢。

你的灯塔的广告费是多少?由于您监视的不是测距,因此每次遭遇只能检测一次是吗?通常需要多长时间?前台应用程序的行为是否不同?不知道在哪里可以找到。如果这意味着校准功率,那么它是-20。我有两个信标,它们都具有相同的名称空间id,但具有不同的实例id(1和2)。如果我靠近实例id为1的信标,那么我将收到找到信标1的通知,下次如果我靠近同一信标,那么我将不会收到任何通知。我将再次从实例id为1的信标处收到通知,如果我靠近它时从实例id为2的信标处收到通知。