如何在Android中使用Eddystone唤醒应用程序

时间:2017-11-14 00:55:55

标签: android beacon wakeup

我想用Eddystone唤醒我的应用程序,但是当我的手机接近Eddystone的信号时没有任何反应。我用Android Beacon库做到了。它就像吹了一样:

    `
onCreate(){
    mBeaconManager = BeaconManager.getInstanceForApplication(this);
    // Detect the main Eddystone-UID frame:
    mBeaconManager.getBeaconParsers().add(new BeaconParser().
            setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));
    mBeaconManager.setBackgroundBetweenScanPeriod(50);
    mBeaconManager.setBackgroundScanPeriod(50);
    mBeaconManager.setForegroundBetweenScanPeriod(50);
    mBeaconManager.setForegroundScanPeriod(50);
    mBeaconManager.setBackgroundBetweenScanPeriod(50);
    mBeaconManager.setForegroundScanPeriod(50);
    mBeaconManager.applySettings();
    mBeaconManager.bind(this);

}`

Android.xml:

<application 
    android:name="com.example.MyApplicationName"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <!-- Note:  the singleInstance below is important to keep two copies of your activity from getting launched on automatic startup -->
    <activity
        android:launchMode="singleInstance"  
        android:name="com.example.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
    <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

以前是否有人做过,请帮助我。感谢

1 个答案:

答案 0 :(得分:1)

是的,可以使用Android Beacon Library使用Eddystone-UID唤醒应用程序。它的工作方式与AltBeacon或iBeacon相同。

实现这一目标的最简单方法是从这里的参考应用程序开始:

https://github.com/altbeacon/android-beacon-library-reference

您需要做的唯一修改是为Eddystone-UID添加信标解析器:

mBeaconManager.getBeaconParsers().add(new BeaconParser().
        setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));

查看问题中的代码,将扫描周期设置为50将是一个问题,因为50ms不足以可靠地检测信标。我会删除这些自定义扫描周期配置并使用默认值。

一些提示:

  1. 在尝试让您的应用在后台运行之前,请确保您可以检测到前景中的信标。
  2. 确保您的应用在参考应用中使用RegionBootstrap,如&#34;在后台启动应用&#34;第here部分
  3. 测试背景检测时,请确保在开始测试之前您已离开区域。要执行此操作,请将您的应用程序置于前台,并将您的信标关闭30秒。这将确保您不在地区。在开始背景检测测试之前始终要这样做。
  4. 如果您从任务切换器中删除了应用,请等待5分钟以确保在开始测试之前在后台重新启动它。
  5. 现实地了解在后台检测信标可能需要多长时间。请阅读here了解详情。