[英]How to set time zone for android rooted device?
我有一個扎根的android設備,我想從我的應用程序更改設備的默認時間,日期和時區。 更改時間和日期非常容易,但是如何更改設備的時區?
您需要android.permission.SET_TIME
。 之后,通過Context.getSystemService(Context.ALARM_SERVICE)及其方法setTime()
使用AlarmManager。
通過活動或服務將時間設置為2010/1/1 12:00:00的代碼段:
Calendar c = Calendar.getInstance();
c.set(2010, 1, 1, 12, 00, 00);
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
am.setTime(c.getTimeInMillis());
如果您要更改時區,則方法應該非常相似(請參見android.permission.SET_TIME_ZONE和setTimeZone )
如果您具有正確的權限(請參閱下文),則可以使用AlarmManager進行此操作。 例如,要將時間設置為2013/08/15 12:34:56,您可以執行以下操作:
Calendar c = Calendar.getInstance();
c.set(2013, 8, 15, 12, 34, 56);
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
am.setTime(c.getTimeInMillis());
您需要權限SET_TIME才能執行此操作。 不幸的是,這是一個signatureOrSystem權限。
AndroidManifest.xml中的定義:
<!-- Allows applications to set the system time -->
<permission android:name="android.permission.SET_TIME"
android:protectionLevel="signature|system"
android:label="@string/permlab_setTime"
android:description="@string/permdesc_setTime" />
可以使用此權限的唯一應用是:
除非您構建自定義ROM,否則第一個運氣不佳。
第二,這取決於您在做什么。
最后一點:在Android 2.2(API 8)中添加了SET_TIME權限和AlarmManager#setTime()。 如果您嘗試在以前的版本上執行此操作,則不確定它是否可以正常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.