«De fecha automática&tiempo de» set on/off mediante programación

Necesito para establecer la fecha actual & tiempo de proveedor de red o proveedor de gps,
He probado esto, pero no funcionó

String timeSettings = android.provider.Settings.System.getString(
            this.getContentResolver(),
            android.provider.Settings.System.AUTO_TIME);
    if (timeSettings.contentEquals("0")) {
        android.provider.Settings.System.putString(
                this.getContentResolver(),
                android.provider.Settings.System.AUTO_TIME, "1");
    }
    timeSettings = android.provider.Settings.System.getString(
            this.getContentResolver(),
            android.provider.Settings.System.AUTO_TIME);

Y permiso

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

Pero no funciona, por Favor, dígale lo que está mal y por favor, diga si tiene alguna otra solución

InformationsquelleAutor Akshay Patil | 2015-09-07

2 Kommentare

  1. 10

    Sólo aplicaciones del sistema puede establecer los valores , la aplicación instalada no puede cambiar, incluso a pesar de que tiene permisos.

    El código para leer si automática de la hora pref se comprueba

    Settings.Global.getInt(getContentResolver(), Settings.Global.AUTO_TIME)

    El código para leer si automático de la zona horaria pref se comprueba

    Settings.Global.getInt(getContentResolver(), Settings.Global.AUTO_TIME_ZONE)

    Puede preguntar al usuario para establecer si están FUERA.

    Usted puede ajustar la hora y la zona horaria mediante programación , mediante la lectura de los valores requeridos .

    El siguiente es el código para establecer el tiempo de

    long now = //time set from timepicker or servertime 
    int year, month, day; //from timepicker
    
    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month);
    c.set(Calendar.DAY_OF_MONTH, day);
    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    
    am.setTime(now);

    Permiso requerido : <uses-permission android:name="android.permission.SET_TIME" />

    • Gracias Rahul, Que significa que tengo que llegar a tiempo de servidor y establecer el tiempo de uso de SystemClock.setCurrentTimeMillis()
    • Acabo de utilizar este Calendario c = Calendario.getInstance(); c.conjunto(2015, 1, 1, 12, 00, 00); Sistema.setCurrentTimeMillis c.getTimeInMillis()); es La exhibición de «el método setCurrentTimeMillis(largo) está definido por el tipo de Sistema de» error
    • Lo siento, es mi error SystemClock.setCurrentTimeMillis c.getTimeInMillis()); System el tiempo no es el cambio de uso de «setCurrentTimeMillis()», Si usted tiene alguna otra solución por favor me dicen
    • Déjame saber qué es exactamente lo que puede , el código para cambiar la hora del sistema ? , una de las aplicaciones instaladas no se puede cambiar la zona horaria.
    • Sí, necesito un código que cambiar la hora del sistema, Aceptar que he utilizado esto para ahora startActivity(new Intent(android.proveedor de.Los ajustes.ACTION_DATE_SETTINGS));Esto vaya a cambiar de fecha Automática & tiempo
    • Gracias Rahul, pero lo que es tzid y Manifestar archivo tiene error de Autorización sólo se concede a las aplicaciones del sistema’
    • Me lo quitaron.. se utiliza para establecer la zona horaria , pero sólo aplicaciones del sistema puede establecer la zona horaria . aceptar la respuesta
    • Tienes razón, ¿Qué acerca de Manifiesto archivo tiene error de Autorización sólo se concede a las aplicaciones del sistema, por Lo Que no es posible establecer el tiempo de uso de mi aap?
    • es posible ajustar el tiempo, pero no de la zona horaria
    • Archivo de manifiesto de la no aceptación de este permiso ‘<uses-permission android:name=»android.el permiso.SET_TIME» />’ mostrando el «Permiso sólo se concede a las aplicaciones del sistema’ error
    • Es que cualquier API problema?
    • Se puede responder de la pregunta? question
    • sí voy a preguntar a su pregunta en 3 horas a partir de ahora

  2. 0

    Como una respuesta actualizada, esto funciona con Settings.Global:

     @RequiresPermission("android.permission.WRITE_SETTINGS")
        public void setSettingsAutomaticDateTimeIfNeeded() {
            String timeSettings = android.provider.Settings.Global.getString(
                    this.getContentResolver(),
                    android.provider.Settings.Global.AUTO_TIME);
            if (timeSettings.contentEquals("0")) {
                android.provider.Settings.Global.putString(
                        this.getContentResolver(),
                        android.provider.Settings.Global.AUTO_TIME, "1");
            }
        }

    Probado en octubre de 2018.

    • Funciona sin la necesidad de la WRITE_SECURE_SETTINGS permiso?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea