A. 怎麼修改android系統默認時區
android平台,經常會遇到產品需要更改系統默認時區日期時間的問題。android更改時區相對比較容易實現,網上也有很多資料,直接設置一個屬性即可,例如設置上海東八區,persist.sys.timezone=Asia/Shanghai。但是如何實現更改默認系統時間呢?
在android中,linux內核中、rtc時鍾,默認的起始日期都是1970年1月1日,那麼如何把默認日期指到2012-01-01呢?筆者在實踐中發現,在RTC驅動中可以很容易實現。在RTC驅動載入的時候,一般都有個probe函數需要先執行,因此在probe函數里下手最直接有效。RTC從1970-01-01開始,那當然很容易把默認值設置到2012-01-01,所需要設置的seconds也就是從1970-01-01所差的秒數,以秒為單位。因此,一旦讀出來的RTC值小於我們預想的值比如2012-01-01(1325402913)小,我們就把它設置到這個時間點。
seconds = rtc_read_time();
printk("init PMU/RTC time to %ld \n", seconds);
if(seconds <= 1325402913) {
seconds = 1325402913;/*2012-01-01*/
ret = rtc_set_time(seconds);
RTC_DBG("Init Set time: %ld, ret =0x%x\n", seconds, ret);
}
筆者通過結果顯示,在android平台上是可行的。要設置到哪天幾點幾分,只要算好具體1970-01-01 00:00差的秒數即可,簡單明了。這樣客戶、用戶使用起來更方便一些。
B. 安卓手機時間校準怎麼調節
是互聯網上的標准時間!如果你是移動的,那麼就是你手機自動連接本省的移動伺服器自動更新。
C. android 怎麼修改出廠默認日期和默認時區
[DESCRIPTION]
如何修改為出廠時區為指定的時區和默認的日期?
[Solution]
時間信息預設信息都是0, 在rtc 初試化 時候設置的.
由於RTC 基本上不會斷電,所以它的初試化只做一次,即使重新download bin 檔.
用FlashTool 執行Format, 再執行download (不要用format -->download button), 或
者RTC斷電一段時間,就可以觀察到日期恢復到出廠值。
修改RTC默認日期:
修改文件
\alps\mediatek\custom\[project]\preloader\ inc\cust_rtc.h
\alps\mediatek\custom\[project]\kernel\rtc\rtc\rtc-mt65XX.h
#define RTC_DEFAULT_YEA 2012
#define RTC_DEFAULT_MTH 2
#define RTC_DEFAULT_DOM 1
修改默認日期:
在JB之前,進行以上修改即可,如果是JB以後,還需要進行以下修改:
(如果下面的修改還是無效,請參考FAQ08916,FAQ08719,FAQ07606)
[File]
framework\services\java\com\android\server\NetworkTimeUpdateService.java
[Function]
systemReady()
[Code]
if(isFirstBoot){
Time today = new Time(Time.getCurrentTimezone());
today.setToNow(); // 將時間恢復到RTC時間
today.set(1, 0, mDefaultYear ); //設立出廠默認日期,mDefaultYear是默認年份
如果想恢復出廠設置後,系統時間不變,可使用today.setToNow();
如果想恢復出廠設置後,系統時間也恢復成出廠時間,可使用today.set(1, 0, mDefaultYear );
這個today.set方法有6個參數的重載,可以精確到秒,具體使用方法請自行查詢API,所以在這里設
置系統默認時間就可以了。
如果要設置出廠默認年份需要修改
1) mediatek\frameworks\base\res\res\values\config.xml將
default_restore_year 修改成 2013
<!-- default year for first power on-->
<integer name="default_restore_year">2013</integer>
2)
frameworks\base\services\java\com\android\server\NetworkTimeUpdateService.
java
if(today.year <= 2010){ //刪除此行判斷條件
today.set(today.monthDay, today.month, 2013);
Log.d(TAG, "Set the year to 2013");
SystemProperties.set(BOOT_SYS_PROPERTY, "false");
SystemClock.setCurrentTimeMillis(today.toMillis(false));}
修改後的表現可通過Setting菜單->時間日期設置):
修改默認時區:
在系統屬性中增加下面欄位(假設改為Moscow)
路徑:\alps\mediatek\config\[project]\system.prop
persist.sys.timezone = Europe/Moscow
注意:默認時區的修改會影響默認時間的值,會根據與格林尼治標准時間差來更新時間,這是正常
現象。如當前設置為中國標准時間GMT+8:00,則手機的出廠時間會變為8:00。
D. 安卓手機如何選擇GMT+14時區
通過調節手機時間來解決,把手機時區改成格林威治時間,就是選 GMT+00:00的,再把時間調整正常就行了,如果手機時間是正常的,就升級QQ到最新版的,還是不行的話哥們就致電騰訊,要求伺服器改時間。。
E. 安卓手機怎麼修改系統時間
命令行
首先我想到的是手機root,然後命令行
date -s 要設置的時間1
關於如何調用命令行,請點擊:安卓程序中調用 linux 命令
如果手機沒 root 怎麼破呢,繼續往下看吧。
獲取系統許可權修改
沒有 root 的話,可以獲取系統許可權來設置,怎麼設置呢,這個文章已經給出:
如何使Android應用程序獲取系統許可權來修改系統時間
就是系統簽名了。
這里說明一點,由於在manifest文件加入android:sharedUserId=」android.uid.system」這個屬性,導致 Android Studio 等工具,直接編譯運行會出現此提示窗:
多次點擊 ok 無效,因為設置了系統屬性,所以,下次你運行別的項目,出現此情況時,可以檢查下時候添加了該屬性的,有的話,去掉,再編譯運行就可以的。
獲取了許可權了,一行代碼就可以設置時間:
SystemClock.setCurrentTimeMillis(millTime);
F. 安卓系統怎麼調時間
根據手機不同,位置也不同。一把情況下,在設置里有個「日期和時間」,可以使用網路上的時間,自動更新一下,也可以手動調。希望可以幫到你。