Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何以编程方式设置设备的时间_Android_Datetime - Fatal编程技术网

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

我创建了一个应用程序,将当前显示时间替换为服务器时间。我试了很多,但没有找到解决办法。如何将其设置到我的设备

我知道如何在我的Android设备上获取服务器时间。这是否可能是实时的,特别是在Android上

  • 服务器时间在我的按钮单击事件中自动设置为我的设备
试试这个:

您可以使用下一个命令:

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>