Android 如何以编程方式设置设备的时间
我创建了一个应用程序,将当前显示时间替换为服务器时间。我试了很多,但没有找到解决办法。如何将其设置到我的设备 我知道如何在我的Android设备上获取服务器时间。这是否可能是实时的,特别是在Android上Android 如何以编程方式设置设备的时间,android,datetime,Android,Datetime,我创建了一个应用程序,将当前显示时间替换为服务器时间。我试了很多,但没有找到解决办法。如何将其设置到我的设备 我知道如何在我的Android设备上获取服务器时间。这是否可能是实时的,特别是在Android上 服务器时间在我的按钮单击事件中自动设置为我的设备 试试这个: 您可以使用下一个命令: adb shell date -s YYYYMMDD.HHmmss 例如: adb shell date -s 20120423.130000 将日期设置为2012年4月23日星期一13:00:00
- 服务器时间在我的按钮单击事件中自动设置为我的设备
adb shell date -s YYYYMMDD.HHmmss
例如:
adb shell date -s 20120423.130000
将日期设置为2012年4月23日星期一13:00:00 IST
或者您也可以尝试以下方法:
startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));
希望能有帮助 如果您拥有正确的权限(见下文),您可以使用
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\u TIME
。不幸的是,这是一种许可
定义
简短答复:
如果您计划将应用程序放在appstore中,或将时间更新为服务器时间,则无法执行此操作
您需要获得许可才能更改时间
日期根据服务器而定
您可能需要为设备设置根目录,然后实施更改
这会对你有很大帮助,让你更好地理解它
我已经做了两个星期完全相同的,现在我得到了一个根设备的解决方案
只有系统应用程序可以更改设备的日期和时间。应用程序无法更改设备的日期时间。可能的副本无法通过编程更改系统时间。SET_TIME是仅授予使用系统签名的应用程序的权限。我总是会收到一个异常:“java.lang.SecurityException:setTime:用户10041和当前进程都没有android.permission.SET_TIME。”我在清单中设置了权限:“android.permission.SET_TIME”。有人能证实吗@Geobit是否作为系统应用程序安装?您将始终获得此安全异常,因为即使您在清单中请求了android.permission.SET_TIME,系统也不会授予您的应用程序此权限,除非它是系统应用程序。简而言之,基本上,除非你有根手机或你自己的自定义ROM,否则你不能在设备上设置时间。时期故事结束。@DavidWasser use@jaswansigh不理解您的编辑或评论。在回答中,此人(不是我)显示了设置时间权限的定义。他没有说你应该使用那个声明。在我看来,你的编辑是混乱的,应该删除。在任何情况下,即使您使用
,您仍然不会被授予该权限,除非您的应用程序是系统应用程序。我的意见是正确的。请注意,“adb”工具不能从设备本身使用,至少除非您有一个不寻常的设备,或者已经在USB主机上使用adb将设备从USB模式切换到TCP模式。虽然此处与adb一起使用的命令是shell命令,但应用程序代码无法以具有足够工作权限的用户身份运行这些命令。date
现在似乎采用了不同的参数:adb shell date MMDDhhmm[[CC]YY][.ss]set
将日期设置为给定时间<代码>adb外壳日期-h
显示完整的使用信息。您没有提到这要求您的应用具有根设备和根权限。您也无法关闭输出流
。
<!-- 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" />
<uses-permission> instead of <permission>