当前位置: 首页>>代码示例>>Java>>正文


Java GeofencingEvent.hasError方法代码示例

本文整理汇总了Java中com.google.android.gms.location.GeofencingEvent.hasError方法的典型用法代码示例。如果您正苦于以下问题:Java GeofencingEvent.hasError方法的具体用法?Java GeofencingEvent.hasError怎么用?Java GeofencingEvent.hasError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.android.gms.location.GeofencingEvent的用法示例。


在下文中一共展示了GeofencingEvent.hasError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
  try {
    GeofencingEvent event = GeofencingEvent.fromIntent(intent);
    if (event.hasError()) {
      int errorCode = event.getErrorCode();
      Log.d("Location Client Error with code: " + errorCode);
    } else {
      int transitionType = event.getGeofenceTransition();
      List<Geofence> triggeredGeofences = event.getTriggeringGeofences();
      if (transitionType == Geofence.GEOFENCE_TRANSITION_ENTER ||
          transitionType == Geofence.GEOFENCE_TRANSITION_EXIT) {
        LocationManagerImplementation locationManager = (LocationManagerImplementation)
            ActionManager.getLocationManager();
        if (locationManager != null) {
          locationManager.updateStatusForGeofences(triggeredGeofences, transitionType);
        }
      }
    }
  } catch (Throwable t) {
    Util.handleException(t);
  }
}
 
开发者ID:Leanplum,项目名称:Leanplum-Android-SDK,代码行数:24,代码来源:ReceiveTransitionsIntentService.java

示例2: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent fenceEvent = GeofencingEvent.fromIntent(intent);
    if (fenceEvent.hasError()) {
        String errorMessage = GeofenceStatusCodes.getStatusCodeString(fenceEvent.getErrorCode());
        Timber.i(errorMessage);
        return;
    }
    Timber.i("We got a geofence intent");

    if (fenceEvent.getGeofenceTransition() != Geofence.GEOFENCE_TRANSITION_DWELL
            || fenceEvent.getTriggeringGeofences().isEmpty()) {
        return;
    }

    String placeId = fenceEvent.getTriggeringGeofences().get(0).getRequestId();
    Realm realm = Realm.getDefaultInstance();
    Place place = Place.findFirst(realm, placeId);
    String title = place != null ?
            getString(R.string.geofence_notification_place_title, place.getName()) :
            getString(R.string.geofence_notification_title);
    String content = getString(R.string.geofence_notification_content);
    String imageUrl = place != null ? place.getFirstImage(GEOFENCE_LARGE_ICON_SIZE) : null;
    realm.close();
    sendNotification(title, content, placeId, imageUrl);
}
 
开发者ID:Turistforeningen,项目名称:SjekkUT,代码行数:27,代码来源:GeofenceIntentService.java

示例3: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
protected void onHandleIntent(Intent intent) {
    super.onHandleIntent(intent);

    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent.hasError()) {
        Timber.e("geofence error code %s", geofencingEvent.getErrorCode());
        return;
    }

    int transitionType = geofencingEvent.getGeofenceTransition();

    List<com.google.android.gms.location.Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences();
    Timber.i("Received geofence transition: %s, %s", transitionType, triggeringGeofences);
    if (transitionType == com.google.android.gms.location.Geofence.GEOFENCE_TRANSITION_ENTER) {
        for (com.google.android.gms.location.Geofence triggerGeofence : triggeringGeofences) {
            triggerNotification(triggerGeofence);
        }
    } else {
        Timber.w("invalid geofence transition type: %s", transitionType);
    }
}
 
开发者ID:andyCano,项目名称:TaskApp,代码行数:22,代码来源:GeofenceTransitionsIntentService.java

示例4: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent != null && !geofencingEvent.hasError()) {
        int transition = geofencingEvent.getGeofenceTransition();

        // Broadcast an intent containing the geofencing info
        Intent geofenceIntent = new Intent(BROADCAST_INTENT_ACTION);
        geofenceIntent.putExtra(TRANSITION_EXTRA_ID, transition);
        geofenceIntent.putExtra(LOCATION_EXTRA_ID, geofencingEvent.getTriggeringLocation());
        ArrayList<String> geofencingIds = new ArrayList<>();
        for (Geofence geofence : geofencingEvent.getTriggeringGeofences()) {
            geofencingIds.add(geofence.getRequestId());
        }
        geofenceIntent.putStringArrayListExtra(GEOFENCES_EXTRA_ID, geofencingIds);
        sendBroadcast(geofenceIntent);
    }
}
 
开发者ID:simplesoft-duongdt3,项目名称:Android-App-Template,代码行数:19,代码来源:GeofencingGooglePlayServicesProvider.java

示例5: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent event = GeofencingEvent.fromIntent(intent);
    if (event != null && !event.hasError()) {
        int transition = event.getGeofenceTransition();
        Geofence fence = event.getTriggeringGeofences().get(0);
        Bundle extras = intent.getExtras();

        String id = fence.getRequestId();
        Matcher m = Pattern.compile("^([^\\t]+)\\t([^\\t]+)$").matcher(id);
        if(m.find()){
            Uri uri = Uri.parse(m.group(1));
            String name = m.group(2);
            switch (transition) {
                case Geofence.GEOFENCE_TRANSITION_ENTER:
                    Log.i("TAG", uri.toString()+" "+name);
                    sendNotification(uri, name);
                    break;
                case Geofence.GEOFENCE_TRANSITION_EXIT:
                    break;
            }

        }
    }
}
 
开发者ID:shokai,项目名称:Android-GMapStars,代码行数:26,代码来源:GeofenceReceiveService.java

示例6: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    Log.d(TAG, "Geofencing event occured");
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent.hasError()) {
        Log.e(TAG, "Location Services error: " + geofencingEvent.getErrorCode());
        return;
    }
    Log.i(TAG, "Location Services geofencingEvent: " + geofencingEvent);

    int transitionType = geofencingEvent.getGeofenceTransition();

    List<Geofence> triggeredGeofences = geofencingEvent.getTriggeringGeofences();

    for (Geofence geofence : triggeredGeofences) {
        Log.d(TAG, "onHandle:" + geofence.getRequestId());
        processGeofence(geofence, transitionType);
    }
}
 
开发者ID:LocativeHQ,项目名称:Locative-Android,代码行数:20,代码来源:ReceiveTransitionsIntentService.java

示例7: onReceive

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
public void onReceive(Context context, Intent intent) {
	final ActiveAlarmManager activeAlarmManager = new ActiveAlarmManager(context);

	GeofencingEvent event = GeofencingEvent.fromIntent(intent);
	if (event.hasError()) {
		final String errorMessage = GeofenceStatusCodes.getStatusCodeString(event.getErrorCode());
		Log.e(TAG, errorMessage);
		return;
	}

	final int transition = event.getGeofenceTransition();
	final List<Geofence> affectedGeofences = event.getTriggeringGeofences();

	if (null != affectedGeofences && !affectedGeofences.isEmpty()) {
		final Collection<GeoAlarm> affectedAlarms = filter(
				Lists.transform(affectedGeofences, getGeoAlarmForGeofenceFn(context)), a -> a != null);
		ImmutableSet<UUID> affectedAlarmIds = ImmutableSet.copyOf(transform(affectedAlarms, alarm -> alarm.id));
		if (transition == Geofence.GEOFENCE_TRANSITION_ENTER) {
			activeAlarmManager.addActiveAlarms(affectedAlarmIds);
		} else {
			activeAlarmManager.removeActiveAlarms(affectedAlarmIds);
		}
	}
}
 
开发者ID:maurizi,项目名称:Geoclock,代码行数:26,代码来源:GeofenceReceiver.java

示例8: onReceive

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
/***
 * Handles the Broadcast message sent when the Geofence Transition is triggered
 * Careful here though, this is running on the main thread so make sure you start an AsyncTask for
 * anything that takes longer than say 10 second to run
 *
 * @param context
 * @param intent
 */
@Override
public void onReceive(Context context, Intent intent) {
    //get the geofencing event sent from the intent
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);

    if (geofencingEvent.hasError()) {
        Log.e(LOG_TAG, String.format("Error Code : %s", geofencingEvent.getErrorCode()));
        return;
    }

    //get the transition type
    int geoFenceTransition = geofencingEvent.getGeofenceTransition();

    //Check which transition type has triggered the event
    if (geoFenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER) {
        RingerUtils.setRingerMode(context, AudioManager.RINGER_MODE_SILENT);
    } else if (geoFenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) {
        RingerUtils.setRingerMode(context, AudioManager.RINGER_MODE_NORMAL);
    } else {
        Log.e(LOG_TAG, String.format("Unknown Transition , %d", geoFenceTransition));
        return;
    }

    //Send the notification
    sendNotification(context, geoFenceTransition);
}
 
开发者ID:samagra14,项目名称:Shush,代码行数:35,代码来源:GeofenceBroadcastReceiver.java

示例9: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    if (intent != null) {
        GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
        if (geofencingEvent.hasError()) {
            String errorMessage = ErrorMessages.getGeofenceErrorString(this,
                    geofencingEvent.getErrorCode());
            HyperLog.e(TAG, errorMessage);
            return;
        }

        // Get the transition type.
        int geofenceTransition = geofencingEvent.getGeofenceTransition();
        if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_DWELL) {
            HyperLog.i(TAG, "User is dwelling in geo fence.");
            ActionManager.getSharedManager(getApplicationContext()).OnGeoFenceSuccess();

        } else {
            // Log the error.
            HyperLog.e(TAG, getString(R.string.geofence_transition_invalid_type,
                    geofenceTransition));
        }

        // Get the geofences that were triggered. A single event can trigger
        // multiple geofences.
        String geofenceTransitionDetails = getGeofenceTransitionDetails(geofenceTransition,
                geofencingEvent.getTriggeringGeofences());

        HyperLog.i(TAG, "GeoFenceTransition Details: " + geofenceTransitionDetails);
    }
}
 
开发者ID:hypertrack,项目名称:hypertrack-live-android,代码行数:32,代码来源:GeofenceTransitionsIntentService.java

示例10: onReceive

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
public void onReceive(Context context, Intent intent) {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    notification = new SimpleNotification(context);

    if (geofencingEvent != null && !geofencingEvent.hasError()) {
        handleReceivedEventOnBackgroundThread(geofencingEvent);
    } else {
        // we end up here e.g. when the user deactivates GPS on the device
        ToastLog.warnLong(context, TAG, "Error: " + geofencingEvent.getErrorCode());
    }
}
 
开发者ID:bsautermeister,项目名称:GeoFencer,代码行数:13,代码来源:PlayTransitionReceiver.java

示例11: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
/**
 * Handles incoming intents.
 * @param intent sent by Location Services. This Intent is provided to Location
 *               Services (inside a PendingIntent) when addGeofences() is called.
 */
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent.hasError()) {
        String errorMessage = GeofenceErrorMessages.getErrorString(this,
                geofencingEvent.getErrorCode());
        Log.e(TAG, errorMessage);
        return;
    }

    // Get the transition type.
    int geofenceTransition = geofencingEvent.getGeofenceTransition();

    // Test that the reported transition was of interest.
    if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER ||
            geofenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) {

        // Get the geofences that were triggered. A single event can trigger multiple geofences.
        List<Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences();

        // Get the transition details as a String.
        String geofenceTransitionDetails = getGeofenceTransitionDetails(
                this,
                geofenceTransition,
                triggeringGeofences
        );

        // Send notification and log the transition details.
        sendNotification(geofenceTransitionDetails);
        Log.i(TAG, geofenceTransitionDetails);
    } else {
        // Log the error.
        Log.e(TAG, getString(R.string.geofence_transition_invalid_type, geofenceTransition));
    }
}
 
开发者ID:RobinCaroff,项目名称:MyGeofencer,代码行数:41,代码来源:GeofenceTransitionsIntentService.java

示例12: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);

    // if the event has an error - log the textual info about it
    if (geofencingEvent.hasError()) {
        String textualError = LocationUtils.getErrorString(this, geofencingEvent.getErrorCode());
        Log.e(TAG, "onHandleIntent: " + textualError);
        return;
    }

    // extract geofence event
    int transition = geofencingEvent.getGeofenceTransition();

    if (transition == Geofence.GEOFENCE_TRANSITION_ENTER ||
            transition == Geofence.GEOFENCE_TRANSITION_EXIT) {

        List<Geofence> geoEvents = geofencingEvent.getTriggeringGeofences();

        // Get the transition details as a String.
        List<String> geofenceDetails = LocationUtils
                .getTransitionDetails(this, transition, geoEvents);

        if (Utilities.getNotificationsPrefs(getBaseContext())
                && geofenceDetails != null && geofenceDetails.size() > 0) {
            sendNotification(geofenceDetails);
        }

    } else {
        Log.e(TAG, getString(R.string.geofence_error_invalid_type, transition));
    }
}
 
开发者ID:dmytroKarataiev,项目名称:EarthquakeSurvival,代码行数:33,代码来源:GeofenceService.java

示例13: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
/**
 * Handles incoming intents.
 * @param intent sent by Location Services. This Intent is provided to Location
 *               Services (inside a PendingIntent) when addGeofences() is called.
 */
@Override
protected void onHandleIntent(Intent intent) {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent.hasError()) {
        String errorMessage = GeofenceErrorMessages.getErrorString(this,
                geofencingEvent.getErrorCode());
        Log.e(TAG, errorMessage);
        return;
    }

    // Get the transition type.
    int geofenceTransition = geofencingEvent.getGeofenceTransition();

    // Test that the reported transition was of interest.
    if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER ||
            geofenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) {

        // Get the geofences that were triggered. A single event can trigger multiple geofences.
        List<Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences();

        // Send notification and log the transition details.
        // sendNotification(geofenceTransitionDetails);
        Intent geofenceIntent = new Intent(GeoFenceUtil.BROADCAST_INTENT_ACTION);
        geofenceIntent.putExtra(GeoFenceUtil.TRANSITION_EXTRA_ID, geofenceTransition);
        geofenceIntent.putExtra(GeoFenceUtil.LOCATION_EXTRA_ID, geofencingEvent.getTriggeringLocation());
        geofenceIntent.putExtra(GeoFenceUtil.GEOFENCES_EXTRA_ID, triggeringGeofences.get(0).getRequestId());
        sendBroadcast(geofenceIntent);

    } else {
        // Log the error.
        Log.e(TAG, "Invalid transition type");
    }
}
 
开发者ID:sanidhya09,项目名称:androidprojectbase,代码行数:39,代码来源:GeofenceTransitionsIntentService.java

示例14: resolveTransitionFromIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
/**
 * Resolves transition information from geofencing intent
 *
 * @param intent geofencing intent
 * @return transition information
 * @throws RuntimeException if information cannot be resolved
 */
static GeoTransition resolveTransitionFromIntent(Intent intent) throws RuntimeException {
    GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
    if (geofencingEvent == null) {
        throw new RuntimeException("Geofencing event is null, cannot process");
    }

    if (geofencingEvent.hasError()) {
        if (geofencingEvent.getErrorCode() == GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE) {
            throw new GeofenceNotAvailableException();
        }
        throw new RuntimeException("ERROR: " + GeofenceStatusCodes.getStatusCodeString(geofencingEvent.getErrorCode()));
    }

    GeoEventType event = supportedTransitionEvents.get(geofencingEvent.getGeofenceTransition());
    if (event == null) {
        throw new RuntimeException("Transition is not supported: " + geofencingEvent.getGeofenceTransition());
    }

    Set<String> triggeringRequestIds = new ArraySet<>();
    for (Geofence geofence : geofencingEvent.getTriggeringGeofences()) {
        triggeringRequestIds.add(geofence.getRequestId());
    }

    Location location = geofencingEvent.getTriggeringLocation();
    return new GeoTransition(event, triggeringRequestIds, new GeoLatLng(location.getLatitude(), location.getLongitude()));
}
 
开发者ID:infobip,项目名称:mobile-messaging-sdk-android,代码行数:34,代码来源:GeoTransitionHelper.java

示例15: onHandleIntent

import com.google.android.gms.location.GeofencingEvent; //导入方法依赖的package包/类
protected void onHandleIntent(Intent intent) {
    Log.d(MainActivity.TAG, "onHandleIntent(" + intent + ")");
    Lesson nearestLesson = getNearestLesson(true);
    if (intent.hasExtra(EXTRA_TRANSITION) && intent.hasExtra(EXTRA_GEOFENCE_LIST) && intent.hasExtra(EXTRA_TRIGGERING_LOCATION)) {
        GeofencingEvent geoFenceEvent = GeofencingEvent.fromIntent(intent);
        if (geoFenceEvent.hasError()) {
            int errorCode = geoFenceEvent.getErrorCode();
            Log.e(MainActivity.TAG, "Location Services error: " + errorCode);
            cancelSelf();
            setSilent(false);
        } else {
            int transitionType = geoFenceEvent.getGeofenceTransition();
            if (transitionType == Geofence.GEOFENCE_TRANSITION_ENTER) {
                setSilent(true);
                sendNotificationIfNeeded(nearestLesson);
            } else if (transitionType == Geofence.GEOFENCE_TRANSITION_EXIT) {
                cancelSelf();
                setSilent(false);
            }
        }
    } else if (intent.hasExtra(EXTRA_TRIGGERED_SELF) && intent.getBooleanExtra(EXTRA_TRIGGERED_SELF, false)) {
        sendNotificationIfNeeded(nearestLesson);
    } else {
        cancelSelf();
        setSilent(false);
    }
}
 
开发者ID:heinrichreimer,项目名称:android-wg-planer,代码行数:28,代码来源:GeofenceTransitionsIntentService.java


注:本文中的com.google.android.gms.location.GeofencingEvent.hasError方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。