本文整理汇总了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);
}
}
示例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);
}
示例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);
}
}
示例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;
}
}
}
}
示例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);
}
}
示例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);
}
}
}
示例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);
}
示例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);
}
}
示例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());
}
}
示例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));
}
}
示例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));
}
}
示例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");
}
}
示例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()));
}
示例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);
}
}