如何使用radiusnetworks proximity kit在用户进入Geofence Map Region时显示警报

时间:2014-10-30 11:18:43

标签: android bluetooth-lowenergy proximity ibeacon-android android-geofence

我正在尝试为我的Android应用程序集成radiusnetworks感应套件,我已经在radiusnetworks上创建了一个帐户,并创建了具有8个地理围栏地图区域1个信标区域的工具包。

如何配置我的Android应用程序,以便在用户进入我的radiusnetworks帐户中配置的地理围栏地图区域时提醒用户。

由于

更新: 堆栈跟踪 10-31 09:08:02.567 29104-29160 / com.appmajik E / Parcel:解组时找不到类:

org.altbeacon.beacon.service.StartRMData
    java.lang.ClassNotFoundException: org.altbeacon.beacon.service.StartRMData
            at java.lang.Class.classForName(Native Method)
            at java.lang.Class.forName(Class.java:251)
            at android.os.Parcel.readParcelableCreator(Parcel.java:2142)
            at android.os.Parcel.readParcelable(Parcel.java:2106)
            at android.os.Message.readFromParcel(Message.java:547)
            at android.os.Message.access$000(Message.java:32)
            at android.os.Message$1.createFromParcel(Message.java:504)
            at android.os.Message$1.createFromParcel(Message.java:501)
            at android.os.IMessenger$Stub.onTransact(IMessenger.java:51)
            at android.os.Binder.execTransact(Binder.java:412)
            at dalvik.system.NativeStart.run(Native Method)

更新

jdk1.7.0_51

proximitykit-android-0.2.0
android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"
}
I'm using a Physical device

1 个答案:

答案 0 :(得分:2)

在Radius Networks下载页面上(在您登录其网站后 - 而不是github repo),有详细的设置地理围栏的说明。简短版本是:

  • 根据您对Eclipse或Android Studio的使用情况为您的应用配置Google Play服务:https://developer.android.com/google/play-services/setup.html#Setup

  • 确保您在manifest

    中设置了相应的权限

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

  • 在您的应用中验证Google Play服务支持

    检查Google Play支持。有关Google最新的建议,请参阅Android documentation on checking for Google Play services support

      

    由于每个应用都以不同的方式使用Google Play服务,因此您(应用开发者)决定在您的应用中确定适当位置以检查Google Play服务版本。例如,如果您的应用始终需要Google Play服务,则可能需要在应用首次启动时执行此操作。另一方面,如果Google Play服务是您应用的可选部分,则只有在用户导航到您应用的该部分后,您才能检查该版本。

         

    要验证Google Play服务版本,请致电isGooglePlayServicesAvailable()。如果结果代码为SUCCESS,那么Google Play服务APK是最新的,您可以继续建立连接。但是,如果结果代码为SERVICE_MISSINGSERVICE_VERSION_UPDATE_REQUIREDSERVICE_DISABLED,则用户需要安装更新。因此,请调用GooglePlayServicesUtil.getErrorDialog()并将结果错误代码传递给它。这会返回您应该显示的Dialog,其中会提供有关错误的相应消息,并提供一个操作,让用户可以通过Google Play商店安装更新。

    Radius Networks在其页面上共享一些示例代码。我建议同时查看Google Play services geofence sample code和Radius Networks Proximity Kit Android Reference App,了解如何处理此问题的两种不同想法。由于检查Google Play服务可能需要您的应用在设备上未安装Google Play服务的情况下与用户进行互动,或者版本不兼容,因此该部分的集成主要取决于应用开发者。

  • 最后,您需要在Proximity Kit中启用地理围栏

查看Radius Networks示例应用,了解有关enabling geofencesimplementing the geofence notifier的详细信息。

要回答有关发送提醒的直接问题,您可以在通知程序回调中发送:

public void didEnterGeofence(ProximityKitGeofenceRegion region) {
    NotificationCompat.Builder builder =
            new NotificationCompat.Builder(this)
                    .setContentTitle("Proximity Kit Reference Application")
                    .setContentText("A geofence is nearby.")
                    .setSmallIcon(R.drawable.ic_launcher);

    NotificationManager notificationManager =
            (NotificationManager) this.getSystemService(
                    Context.NOTIFICATION_SERVICE
            );
    notificationManager.notify(1, builder.build());
}