你这个做法contentResolver.query查出来的的时间还是没有改变
时间: 2024-05-15 08:19:29 浏览: 11
很抱歉,我之前的回答有误。对于使用contentResolver.query查询出来的时间,确实无法直接修改,因为它是从系统中读取的。如果需要修改时间,可以使用以下方法:
1. 使用SystemClock.setCurrentTimeMillis()方法修改系统时间,这种方法需要在AndroidManifest.xml文件中添加修改系统时间的权限:
```
<uses-permission android:name="android.permission.SET_TIME"/>
```
2. 使用AlarmManager.setExact()或AlarmManager.set()方法设置定时任务,将时间设为需要修改的时间,当任务执行时会将系统时间修改为指定时间。例如:
```
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent("com.example.ACTION_SET_TIME");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH, Calendar.JULY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
long timeInMillis = calendar.getTimeInMillis();
alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent);
```
3. 如果需要在应用中使用自己的时间,可以使用System.currentTimeMillis()方法获取当前时间,然后在需要使用时间的地方进行处理。例如:
```
long currentTime = System.currentTimeMillis();
long offsetTime = 1000 * 60 * 60 * 24; // 偏移一天
long newTime = currentTime + offsetTime;
```
希望能对您有所帮助。