如何解决如何在进入和退出地理围栏时启用和禁用按钮
我想在进入地理围栏时启用该按钮并在退出地理围栏时禁用该按钮。我尝试使用通知获取地理围栏退出和进入信息,但它没有禁用和启用按钮。
private void populateGeofenceList() {
for (Map.Entry<String,LatLng> entry : Constants.BAY_AREA_LANDMARKS.entrySet()) {
mGeofenceList.add(new Geofence.Builder()
.setRequestId(entry.getKey())
.setCircularRegion(
entry.getValue().latitude,entry.getValue().longitude,Constants.GEOFENCE_RADIUS_IN_METERS
)
.setExpirationDuration(Geofence.NEVER_EXPIRE)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
Geofence.GEOFENCE_TRANSITION_EXIT)
.build());
}
}
private GeofencingRequest getGeofencingRequest() {
GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
builder.setinitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
builder.addGeofences(mGeofenceList);
return builder.build();
}
public void addGeofencesButtonHandler(View view) {
if (!checkPermissions()) {
requestPermissions();
return;
}
Toast.makeText(this,"Anda sudah Mengabsen",Toast.LENGTH_SHORT).show();
}
@SuppressWarnings("MissingPermission")
private void addGeofences() {
if (!checkPermissions()) {
showSnackbar(getString(R.string.insufficient_permissions));
return;
}
mGeofencingClient.addGeofences(getGeofencingRequest(),getGeofencePendingIntent())
.addOnCompleteListener(this);
}
private void setButtonsEnabledState() {
GeofencingRequest geo = getGeofencingRequest();
if (geo.equals(Geofence.GEOFENCE_TRANSITION_ENTER)) {
mAbsen.setEnabled(true);
mAbsen.setText("Absen");
frameAbsen.setBackgroundResource(R.drawable.call_button);
}else {
mAbsen.setEnabled(false);
mAbsen.setText("Tidak");
//frameAbsen.setBackgroundResource(R.drawable.disable);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。