Мне нужна помощь по Geofence или Geofire на Android - PullRequest
0 голосов
/ 17 июня 2019

Всякий раз, когда мое устройство входит в геозону, я хочу, чтобы sendNotificationsToEveryone() запускался или sendNotificationsToEveryoneExit() срабатывал в зависимости от сценария.

Это раздел запуска функции моего кода:

geoQueryArray[geoFireCount] = geoFire.queryAtLocation(new GeoLocation(geofirelocations.latitude, geofirelocations.longitude), 0.1f);
            geoQueryArray[geoFireCount].addGeoQueryEventListener(new GeoQueryEventListener() {
                @Override
                public void onKeyEntered(String key, GeoLocation location) {
                    sendNotificationsToEveryone(fcm_tokens_list, geoName);
                }

                @Override
                public void onKeyExited(String key) {
                    sendNotificationsToEveryoneExit(fcm_tokens_list,geoName);
                }

                @Override
                public void onKeyMoved(String key, GeoLocation location) {
                    Log.d("MOVE", String.format("%s move within the dangerous area [%f/%f]", key, location.latitude, location.longitude));
                    //sendNotificationsExit(fcm_tokens_list);
                }

                @Override
                public void onGeoQueryReady() {

                }

                @Override
                public void onGeoQueryError(DatabaseError error) {
                    Log.d("ERROR", ""+error);
                }
            });
            geoFireCount++;

и это мой код для устройства, которое, когда оно входит в Geofence, должно запускать функции sendNotifications:

  final double latitude = Double.parseDouble(part1);
  final double longitude = Double.parseDouble(part2);

    geoFire1.setLocation("You", new GeoLocation(latitude, longitude), new GeoFire.CompletionListener() {
        @Override
        public void onComplete(String key, DatabaseError error) {
            if (mCurrent != null)
                mCurrent.remove();

            BitmapDescriptor deviceIcon = BitmapDescriptorFactory.fromResource(R.drawable.watchdevice);

            mCurrent = mMap.addMarker(new MarkerOptions()
                    .position(new LatLng(latitude, longitude))
                    .title("GPS Device").icon(deviceIcon));
            LatLng coordinate = new LatLng(latitude, longitude);
            CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 12);
            mMap.animateCamera(yourLocation);
        }
    });

Этот код находится в том же файле, мне интересно, как я буду редактироватьgeoQueryArray[] для включения устройства, которое при входе в геозону будет запускать функции sendNotications.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...