我创建了一个应用程序,用服务器时间替换当前显示时间.我已经尝试了很多,但我找不到解决方案.如何将其设置为我的设备?
我知道如何在我的Android设备上获得服务器时间.是否可以实时,特别是在Android上?
Geo*_*its 64
如果您拥有正确的权限(见下文),则可以使用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());
Run Code Online (Sandbox Code Playgroud)
您需要获得许可SET_TIME才能执行此操作.不幸的是,这是一个signatureOrSystem许可.
<!-- 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" />
Run Code Online (Sandbox Code Playgroud)
唯一可以使用此权限的应用是:
/system/文件夹除非你构建自定义ROM,否则第一个就不行了.
第二,它取决于你在做什么.
如果您正在构建广泛分发的应用(Google Play等),您可能不应该这样做.它只是root用户的一个选项,您只能手动安装它.任何市场都不会将其安装到正确的位置.
如果你正在为自己构建一个应用程序(或者只是作为一个学习练习),那就去吧.不过,你需要一部扎根手机,所以先做.然后,您可以/system/app/使用ADB或文件管理器直接安装应用程序.有关详细信息,请参阅此类文章.
最后一点说明:SET_TIME权限并AlarmManager#setTime()在Android 2.2(API 8)中添加.如果您尝试在以前的版本上执行此操作,我不确定它是否会起作用.
Arm*_*ger 11
试试这个:
您可以使用下一个命令:
adb shell date -s YYYYMMDD.HHmmss
Run Code Online (Sandbox Code Playgroud)
例:
adb shell date -s 20120423.130000
Run Code Online (Sandbox Code Playgroud)
将日期设置为2012年1月23日13:00:00
或者您也可以试试这个:
startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!!
你不能做到这一点,如果您计划在AppStore您的应用程序,或者更新的时间服务器时间。
您需要SignatureOrSystem权限才能根据服务器更改时间日期。
您可能必须root您的设备,然后实施更改。
该线程应该对您有很大帮助,以便更好地理解它。
| 归档时间: |
|
| 查看次数: |
48938 次 |
| 最近记录: |