¿Android proporciona una API para determinar los días de fin de semana que es local-consciente?
Quiero proporcionar un estilo a una aplicación que tenga en cuenta los días de trabajo y los fines de semana, pero necesito que sea regional. Soy consciente de Calendar#getFirstDayOfWeek
, pero esto sólo devuelve el primer día de la semana, no el primer día de la semana de trabajo.
Por ejemplo, con English (Canada) Calendar#getFirstDayOfWeek
devuelve Calendar.SUNDAY
, que es el primer día de nuestra semana. Nuestra semana de trabajo comienza en Calendar.MONDAY
, y nuestros días de fin de semana son Calendar.SATURDAY
y Calendar.SUNDAY
.
- Tamil Calender Ver
- No se muestran los eventos del calendario de Android
- Cómo mostrar el lunes como primer día CalendarView
- Obtención de año, mes y fecha en Android
- Calendario devuelve la fecha actual incorrecta android
En inglés (Reino Unido), Calendar#getFirstDayOfWeek
devuelve Calendar.MONDAY
y el primer día de su semana de trabajo es el lunes. Sus días de fin de semana son Calendar.SATURDAY
y Calendar.SUNDAY
.
Las cosas se complican para locales como el hebreo. El primer día de su semana es Calendar.SUNDAY
, pero en lugar del primer día de su semana de trabajo es Calendar.MONDAY
, es Calendar.SUNDAY
. Sus días de fin de semana son Calendar.FRIDAY
y Calendar.SATURDAY
. Egipto es el mismo.
Irán sólo tiene un día de fin de semana, Calendar.FRIDAY
.
¿Hay algún método en Android para determinar los días de fin de semana? Tenemos una lógica en su lugar que cubre la mayoría de los casos occidentales, pero es frágil, y una API de la comunidad que conoce la configuración regional es ideal, pero no soy consciente de ello.
Tenga en cuenta, no estoy pidiendo una recomendación sobre algunos "mejor" biblioteca o cualquier cosa de la clase. Estoy preguntando si existe alguna información regional sobre la plataforma Android en absoluto, y si es así, qué llamadas de API existen para acceder a estos datos.
- Agregar calendario y eventos en Android 2.2
- Cómo configurar la alarma para disparar todos los días a las 8:00 am
- Android: selector de fechas del calendario popdown
- Cómo guardar y recuperar la fecha en SharedPreferences
- Android: Fecha (año, mes, día)
- Cómo añadir un evento a la aplicación de Google Calendar de Google Android haciendo clic en una URL
- Cómo eliminar o editar el evento de G-calendario de mi aplicación Android?
- Cómo configurar Alarma para días laborables en android
Existen nuevas API de instantáneas y vallas en la API de conocimiento para su caso de uso para una API con conocimiento de idioma local para el tiempo.
Por favor, eche un vistazo a Awareness.SnapshotApi.getTimeIntervals que devuelve un TimeIntervalsResult. Puede llamar al método getTimeIntervals () para devolver un objeto que tenga información sobre las propiedades de la hora actual en el entorno local actual (específicamente el fin de semana y las vacaciones que ha solicitado).
Por ejemplo, el fragmento de código siguiente comprueba si se trata de un fin de semana en la configuración regional del dispositivo en el momento de la llamada api de snapshot.
Awareness.SnapshotApi.getTimeIntervalsmGoogleApiClient) .setResultCallback(new ResultCallback<TimeIntervalsResult>() { @Override public void onResult(@NonNull TimeIntervalsResult result) { if (!result.getStatus().isSuccess()) { Log.e(TAG, "Could not get the time intervals"); return; } if (result.getTimeIntervals().hasTimeInterval( TimeFence.TIME_INTERVAL_WEEKEND)) { // do your custom action, this means it is weekend at the // device locale at this time } }
Si desea que su aplicación obtenga una devolución de llamada el próximo fin de semana o vacaciones en la configuración regional del dispositivo, puede utilizar el nuevo TimeFence Api inTimeInterval () . Por ejemplo, pedir prestado el fragmento de código de los documentos del desarrollador,
// Create TimeFence AwarenessFence weekendHolidayFence = Awareness.or( TimeFence.inTimeInterval(TimeFence.TIME_INTERVAL_WEEKEND), TimeFence.inTimeInterval(TimeFence.TIME_INTERVAL_HOLIDAY)) Awareness.FenceApi.updateFences( mGoogleApiClient, new FenceUpdateRequest.Builder() .addFence("fenceKey", weekendHolidayFence, myPendingIntent) .build()) .setResultCallback(new ResultCallback<Status>() { @Override public void onResult(@NonNull Status status) { if (status.isSuccess()) { Log.i(TAG, "Fence was successfully registered."); } else { Log.e(TAG, "Fence could not be registered: " + status); } } });
- Biblioteca, que es depdendency de otra biblioteca, no reconocido en cordova ejecutar android
- No se puede ejecutar Robotium en Android Studio con sólo APK