Pregunta

Necesito Establecer la fecha / hora de Android Programática, ¡pero no tengo éxito! Tengo estas tres fuentes anteriores:

Código fuente 1

AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);  
alarm.setTime(1330082817000); 

Androidmanifest:

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

Excepción:

Service fatal error : Unable to start activity ComponentInfo{br.com.tdta.service/br.com.tdta.service.Service}: java.lang.SecurityException: setTime: Neither user 10038 nor current process has android.permission.SET_TIME.  
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.tdta.service/br.com.tdta.service.Service}: java.lang.SecurityException: setTime: Neither user 10038 nor current process has android.permission.SET_TIME.  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)  
    at android.app.ActivityThread.access$2300(ActivityThread.java:125)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)  
    at android.os.Handler.dispatchMessage(Handler.java:99)  
    at android.os.Looper.loop(Looper.java:123)  
    at android.app.ActivityThread.main(ActivityThread.java:4627)  
    at java.lang.reflect.Method.invokeNative(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:521)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)  
    at dalvik.system.NativeStart.main(Native Method)  
Caused by: java.lang.SecurityException: setTime: Neither user 10038 nor current process has android.permission.SET_TIME.  
    at android.os.Parcel.readException(Parcel.java:1247)  
    at android.os.Parcel.readException(Parcel.java:1235)  
    at android.app.IAlarmManager$Stub$Proxy.setTime(IAlarmManager.java:237)  
    at android.app.AlarmManager.setTime(AlarmManager.java:289)  
    at br.com.tdta.service.Service.onCreate(Service.java:32)  
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)  
... 11 more  

====

Código fuente 2

boolean itsWork = SystemClock.setCurrentTimeMillis(1330082817000);  
System.out.println(itsWork);  

manifiesto:

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

itswork Valor:

false  

====

Código fuente 3

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd.hhmmss");
String data = format.format(new Date(1330082817000));
try {
    Runtime.getRuntime().exec("date -s " + data);
} catch (IOException e) {
}

¿Qué estoy haciendo mal?

¡Gracias de antemano!

¿Fue útil?

Solución

La aplicación de usuario no tiene permiso para cambiar el tiempo del dispositivo.Lea la respuesta por Cashbash en la siguiente post para la opción alternativa.

Copiando aquí para una referencia rápida:

Según este hilo , las aplicaciones de usuario no se pueden configurarEl tiempo, independientemente de los permisos que le damos.En su lugar, el mejor enfoque es hacer que el usuario establezca el tiempo manualmente.Usaremos:

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));

Desafortunadamente, no hay forma de vincularlos directamente a la configuración de la hora (que los guardará un clic más).Al hacer uso de ellapsedRealtime, podemos asegurarnos de que el usuario establezca la hora correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top