1

我尝试将 beaconinside sdk 集成到我的应用程序中,即使我的应用程序已关闭并从应用程序抽屉(最近的应用程序)中删除,我也希望接收通过 Beaconservice 发送的事件。

现在我的代码看起来像这样

信标片段

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

    // init beaconinside sdk using my token
    BeaconService.init(this, API_TOKEN);
}

信标处理程序

public class BeaconHandler extends BroadcastReceiver {
    // ...

    public void onReceive(Context context, Intent intent) {
        // ...
    }
}

背景信标服务

public class BackgroundBeaconservice extends IntentService {
    // ...
    public void onCreate() {
        // setup intent filter for beacon events
        IntentFilter beaconListenerFilter = new IntentFilter();
            // add intent filter for BeaconService (e.g. REGION_ENTER)

        // beacon event handler
        beaconListener = new BeaconHandler(this);

        // register the event handler to the LocalBroadcastManager
        registerBeaconEventHandler(beaconListener, beaconListenerFilter);
    }

    private void registerBeaconEventHandler(BroadcastReceiver receiver, IntentFilter filter) {
        LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter);
    }
}

到目前为止它可以工作,但是当我从最近的应用程序抽屉中关闭应用程序时,它停止工作。我写信给 Beaconinside 的技术支持,他们告诉我使用服务在后台接收来自 LocalBroadcastManager 的事件。

我需要在服务类中移动代码的哪些方面,哪些可以保留在原处?

4

1 回答 1

0

事实证明,如果没有beaconinside的交互,这个问题就无法解决。所以我给他们发了一封邮件,他们告诉我这个问题在本周发布的新版本(2.8.0)中得到了修复。

于 2017-05-03T14:18:21.457 回答