Android Altbeacon库-在后台和前端扫描时不触发didEnterRegion函数

Android Altbeacon库-在后台和前端扫描时不触发didEnterRegion函数,android,background,monitoring,scanning,altbeacon,Android,Background,Monitoring,Scanning,Altbeacon,我的目的是当应用程序关闭时,应用程序必须向用户发送通知。我使用了Altbeacon后台库 参考: 虽然应用程序发送信标检测到的日志,但BootstrapNotifier不会触发didEnterRegion函数。我不明白这个案子 我的日志: 02-25 21:15:39.906 3183-3203/com.beacon.beacondetection.beacondetection D/BluetoothAdapter: onScanResult() - Device=E1:B9:E3:76:9

我的目的是当应用程序关闭时,应用程序必须向用户发送通知。我使用了Altbeacon后台库

参考:

虽然应用程序发送信标检测到的日志,但BootstrapNotifier不会触发didEnterRegion函数。我不明白这个案子

我的日志:

 02-25 21:15:39.906 3183-3203/com.beacon.beacondetection.beacondetection D/BluetoothAdapter: onScanResult() - Device=E1:B9:E3:76:91:50 RSSI=-50

 02-25 21:15:39.916 3183-3204/com.beacon.beacondetection.beacondetection D/BluetoothAdapter: onScanResult() - Device=CC:E0:4C:60:F8:C8 RSSI=-87
AndroidManifest.xml

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

<application
    android:name=".MyApplicationName"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">


    <activity
        android:launchMode="singleInstance"
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

}一种可能性是您的信标没有发送AltBeacon数据包,这是代码设置为检测的唯一信标格式

如果您的信标发送器正在发送Eddystone UID或iBeacon格式的数据包,则需要添加一个新行,其中包含:

beaconManager.getBeaconParsers().add(new BeaconParser().
        setBeaconLayout("...")

在哪里。。。是适用于信标类型的正确布局表达式。您可以通过谷歌搜索轻松找到适合您的信标类型的布局字符串。

在我上面编写的参考应用程序中,当我使用RangingActivity.java类时,应用程序会在onBeaconServiceConnect()函数上检测信标。这没什么问题。但当应用程序运行时,若我按下主页按钮,应用程序就会进入后台。应用程序转到RanginActivity.java中的Pause方法。我想信标扫描必须在BeaconDetection类中继续。当检测到任何信标时,必须检测到didEnterRegion()函数。但在RangingActivity.java类中,再次触发了onBeaconServiceConnect()函数。我该怎么解决?对不起,我恐怕不明白这个问题。您是说从未调用过didEnterRegion(),是吗?如果是真的,这才是真正需要解决的问题。每次启动测距活动时都调用onBeaconServiceConnect是正常的。这不是问题。在参考应用程序中,应用程序类使用RegionBootstrap连接到信标服务。然后,当它找到一个信标时,就会调用didEnterRegion。我会在这个方法上设置一个断点或添加一个调试行,并验证它在信标打开时被调用。如果不是,请使用现成的Locate Beacon Android应用程序验证是否可以检测到信标,并验证它是iBeacon还是其他类型。
beaconManager.getBeaconParsers().add(new BeaconParser().
        setBeaconLayout("...")