有时候,搞不懂为什么手机设备无法准确定义系统时间,出现混乱或显示与实际不符,需要重置或重新设定一次才行,也是真的够无语的!!
vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.xml
<!--无法从设置外部触发。统计数据可以触发它,因为我们发送
对它犹豫不决-->
<receiver android:name=".fuelgauge.batterytip.AnomalyConfigReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.app.action.STATSD_STARTED"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="com.android.set.system_time"/>
</intent-filter>
</receiver>
/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
//*/broadcast modify system time
import android.provider.Settings;
import android.app.AlarmManager;
//*/public class AnomalyConfigReceiver extends BroadcastReceiver {
private static final String TAG = "AnomalyConfigReceiver";@Override
public void onReceive(Context context, Intent intent) {
if (StatsManager.ACTION_STATSD_STARTED.equals(intent.getAction())
|| Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
final StatsManager statsManager = context.getSystemService(StatsManager.class);// Check whether to update the config
AnomalyConfigJobService.scheduleConfigUpdate(context);try {
BatteryTipUtils.uploadAnomalyPendingIntent(context, statsManager);
} catch (StatsManager.StatsUnavailableException e) {
Log.w(TAG, "Failed to uploadAnomalyPendingIntent.", e);
}if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
AnomalyCleanupJobService.scheduleCleanUp(context);
}
}
//*/add broadcast modify system time
if ("com.android.set.system_time".equals(intent.getAction())) {
String tzId = intent.getStringExtra("timeZone");
String timeFormat = intent.getStringExtra("timeFormat");
long when = intent.getLongExtra("when",0);
android.util.Log.i("TP","com.tyd.system_time tzId = "+tzId);
android.util.Log.i("TP","com.tyd.system_time timeFormat = "+timeFormat);
android.util.Log.i("TP","com.tyd.system_time when ="+when);
Settings.Global.putInt(context.getContentResolver(), Settings.Global.AUTO_TIME_ZONE,0);//【置0重新设置一次】
context.getSystemService(AlarmManager.class).setTimeZone(tzId);
android.provider.Settings.System.putString(context.getContentResolver(),
android.provider.Settings.System.TIME_12_24, timeFormat);
context.getSystemService(AlarmManager.class).setTime(when);
}
//*/}
}