gpt4 book ai didi

在后台输入位置时,Android Eddystone 调用 api

转载 作者:搜寻专家 更新时间:2023-11-01 07:46:54 26 4
gpt4 key购买 nike

我正在考虑在 ionic 上开发一个基于 eddyston beacon 的应用程序。我需要确保我可以涵盖这种情况:

1- 用户口袋里有手机和屏幕锁。

2- 手机进入信标范围。

3- 当用户安装我的应用时,他会收到通知。

假设用户安装了应用程序,是否可以在不解锁手机的情况下进入信标区域后调用api?

如果可能的话,有什么建议可以让星环环顾四周吗?

对于这样一个笼统的问题,我很抱歉,在问这个问题之前,我已经到处寻找可能的地方了。对不起,如果这是一个转储问题,而且我的英语不好。

最佳答案

当然可以在 Android 上使用 native 代码执行您描述的操作,可能无法使用 Ionic/Cordova 从 JavaScript 调用 API。

问题在于 Ionic 和 Cordova 依赖于 Android WebView 来托管调用 Web 服务的 JavaScript。 WebView 必须驻留在 Activity 中,它是托管可视屏幕的 native Android 构造。这样的可视屏幕无法在不显示的情况下创建,因此无法执行您的 JavaScript 代码来进行 API 调用,除非屏幕首先实际显示给用户。

另一种方法是制作一个混合应用程序,使用 native 组件来检测信标并进行 API 调用,然后使用 Ionic 构建应用程序的其余部分。我与其他 Ionic 开发人员就此解决方案进行了合作。如果你走这条路,我建议使用 Android Beacon Library甚至在应用程序启动之前本地检测 Eddystone 信标,然后在信标检测时从其本地回调中触发通知,然后进行 API 调用。

值得注意的是,虽然此库也有 Ionic 绑定(bind),但它们仅在应用程序位于前台时才有效。

以下是使用此库检测到 Eddystone Beacon 时如何设置代码以进行 API 调用:

public class MyApplicationName extends Application implements BootstrapNotifier {
private static final String TAG = "MyApplicationName";
private RegionBootstrap regionBootstrap;

@Override
public void onCreate() {
super.onCreate();
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT));

// wake up the app when any beacon is seen (you can specify specific id filers in the parameters below)
Region region = new Region("match-any-eddystone", null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
}

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

@Override
public void didEnterRegion(Region arg0) {
Log.d(TAG, "Got a didEnterRegion call");

// TODO: MAKE API CALL HERE

}

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

全面披露:我是 Android Beacon Library 项目的首席开发人员。

关于在后台输入位置时,Android Eddystone 调用 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42181299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com