首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现kontakt.io sdk的后台服务?

如何实现kontakt.io sdk的后台服务?
EN

Stack Overflow用户
提问于 2015-01-22 12:32:21
回答 4查看 2.3K关注 0票数 4

如果我用我的Android设备输入一个信标区域,我喜欢显示一个通知。这在Android有很好的记录

只要应用程序是活动的,这个程序就能工作。当应用程序关闭时我如何获得通知?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-26 15:09:07

我自己建立一项服务:

BeaconRangingService.java

代码语言:javascript
复制
    public class BeaconRangingService extends Service {

        private static final String TAG = BeaconRangingService.class.getSimpleName();
        private BeaconManager beaconManager;

        @Override
        public void onCreate() {
            super.onCreate();
            beaconManager = BeaconManager.newInstance(getApplicationContext());
            beaconManager.setMonitorPeriod(MonitorPeriod.MINIMAL);
            beaconManager.setForceScanConfiguration(ForceScanConfiguration.DEFAULT);
            beaconManager.registerMonitoringListener(new BeaconManager.MonitoringListener() {
                @Override
                public void onMonitorStart() {
                    Log.v(TAG, "start monitoring beacons");
                }

                @Override
                public void onMonitorStop() {
                    Log.wtf(TAG, "stop monitoring beacons");
                }

                @Override
                public void onBeaconsUpdated(Region region, List<Beacon> list) {

                }

                @Override
                public void onBeaconAppeared(Region region, Beacon beacon) {
                   Toast.makeText(getApplicationContext(), "Beacon appeared\n BEACON ID: " + beacon.getBeaconUniqueId(), Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onRegionEntered(Region region) {

                }

                @Override
                public void onRegionAbandoned(Region region) {

                }
            });

        }

        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {

            Log.v(TAG, "service started");

            if (!beaconManager.isBluetoothEnabled()) {
                Log.w(TAG, "bluetooth disabled, stop service");
                stopSelf();
            } else {
                connect();
            }

            return super.onStartCommand(intent, flags, startId);
        }

        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }

        @Override
        public void onDestroy() {
            Log.v(TAG, "service destroyed");
            beaconManager.stopMonitoring();
            beaconManager.disconnect();
            beaconManager = null;
            super.onDestroy();
        }

        private void connectBeaconManager() {
            try {
                beaconManager.connect(new OnServiceBoundListener() {
                    @Override
                    public void onServiceBound() {
                        try {
                            HashSet<Region> regions = new HashSet<>();
                            regions.add(Region.EVERYWHERE);
                            beaconManager.startMonitoring(regions);
                        } catch (RemoteException e) {
                            e.printStackTrace();
                        }
                    }
                });
            } catch (RemoteException e) {
                throw new IllegalStateException(e);
            }
        }

    }     

AndroidManifest.xml

代码语言:javascript
复制
 <service
            android:name="com.your.package.BeaconRangingService"
            android:exported="false"/>

启动服务

代码语言:javascript
复制
 Intent intent = new Intent(this, BeaconRangingService.class);
 startService(intent);
票数 3
EN

Stack Overflow用户

发布于 2015-01-24 19:34:01

我对kontakt.io一无所知,但是AltBeacon有一个库和参考应用程序,它提供了这个功能。https://github.com/AltBeacon

我相信这是通用的Android功能,对他们的实现没有任何魔力。

票数 1
EN

Stack Overflow用户

发布于 2015-05-08 08:08:24

@erdna你测试过kontakt管理应用的示例吗?有一种方法,在应用程序处于前台时出现Toast,在应用程序在后台工作时出现标准通知。

https://github.com/kontaktio/kontakt-beacon-admin-sample-app

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28088870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档