Android 通过应用程序来设置系统的日期和时间中的

Android 通过应用程序来设置系统的日期和时间中的

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Android 通过应用程序来设置系统的日期和时间中的

android 2.3 

android 4.0

测试可行,刚需ROOT权限.

import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;

import android.os.SystemClock;

public class SystemDateTime {
	
	static final String TAG = "SystemDateTime"; 
	
	public static void setDateTime(int year, int month, int day, int hour, int minute) throws IOException, InterruptedException {

		requestPermission();

    	Calendar c = Calendar.getInstance();

        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month-1);
        c.set(Calendar.DAY_OF_MONTH, day);
        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
        
        
        long when = c.getTimeInMillis();

        if (when / 1000 < Integer.MAX_VALUE) {
            SystemClock.setCurrentTimeMillis(when);
        }

        long now = Calendar.getInstance().getTimeInMillis();
        //Log.d(TAG, "set tm="+when + ", now tm="+now);

        if(now - when > 1000)
        	throw new IOException("failed to set Date."); 
        
	}

	public static void setDate(int year, int month, int day) throws IOException, InterruptedException {

		requestPermission();

    	Calendar c = Calendar.getInstance();

        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        c.set(Calendar.DAY_OF_MONTH, day);
        long when = c.getTimeInMillis();

        if (when / 1000 < Integer.MAX_VALUE) {
            SystemClock.setCurrentTimeMillis(when);
        }

        long now = Calendar.getInstance().getTimeInMillis();
        //Log.d(TAG, "set tm="+when + ", now tm="+now);

        if(now - when > 1000)
        	throw new IOException("failed to set Date.");
	}

	public static void setTime(int hour, int minute) throws IOException, InterruptedException {
		
		requestPermission();

        Calendar c = Calendar.getInstance();

        c.set(Calendar.HOUR_OF_DAY, hour);
        c.set(Calendar.MINUTE, minute);
        long when = c.getTimeInMillis();

		if (when / 1000 < Integer.MAX_VALUE) {
			SystemClock.setCurrentTimeMillis(when);
		}

		long now = Calendar.getInstance().getTimeInMillis();
        //Log.d(TAG, "set tm="+when + ", now tm="+now);

        if(now - when > 1000)
        	throw new IOException("failed to set Time.");
	}
	
	static void requestPermission() throws InterruptedException, IOException {
		createSuProcess("chmod 666 /dev/alarm").waitFor();
	}
	
	static Process createSuProcess() throws IOException  {
		File rootUser = new File("/system/xbin/ru");
		if(rootUser.exists()) {
			return Runtime.getRuntime().exec(rootUser.getAbsolutePath());
		} else {
			return Runtime.getRuntime().exec("su");
		}
	}
	
	static Process createSuProcess(String cmd) throws IOException {

		DataOutputStream os = null;
		Process process = createSuProcess();

		try {
			os = new DataOutputStream(process.getOutputStream());
			os.writeBytes(cmd + "\n");
			os.writeBytes("exit $?\n");
		} finally {
			if(os != null) {
				try {
					os.close();
				} catch (IOException e) {
				}
			}
		}

		return process;
	}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117370.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cmd命令大全

    cmd命令大全

  • ss5客户端设置[通俗易懂]

    ss5客户端设置[通俗易懂]根据ss5服务端参数,对ss5客户端进行配置:ipss5服务所在的服务器主机的IP。port默认是1080,若修改,可以查看ss5服务配置文件:`/etc/sysconfig/ss5`username&password用户名密码,可以查看ss5服务配置文件:`/etc/opt/ss5/ss5.passwd`user1 123456

    2022年10月27日
  • servlet-Filter过滤器

    servlet-Filter过滤器Filter过滤器Filter过滤器是javaweb的三大组件之一,三大组件分别是:Servlet程序,Listener监听器,Filter过滤器Filter过滤器它是javaEE的规范,也就是接口Filter过滤器它的作用是拦截请求,过滤响应拦截请求常见的应用场景:权限检查日记操作事务管理等等原理package at.guitu.com.FIlter;import javax.servlet.FilterChain;import javax.servlet.Filte

  • WEB框架本质和第一个Django实例

    Web框架本质我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。这样我们就可以自己实现Web框架了。半成品自定义web框架可以说We

  • 【Verilog】移位寄存器总结:移位寄存器、算数移位寄存器、线性反馈移位寄存器(LFSR)

    【Verilog】移位寄存器总结:移位寄存器、算数移位寄存器、线性反馈移位寄存器(LFSR)在练习HDLbits的时候,最常见的几种移位寄存器进行了总结,供大家参考,希望可以帮助到大家。

  • webapp开发实战_html5开发手机app实例

    webapp开发实战_html5开发手机app实例从事单页相关的开发一年有余,期间无比的推崇webapp的网站模式,也整理了很多移动开发的知识点,但是现在回过头来看,webapp究竟是好还是不好真是一言难尽哟!webapp使用JavaScript修改页面;紧接着再从服务器传递更多数据然后再修改页面,如此循环。从性能的角度看,在现代浏览器中单页面WebApp已经能够和普通native应用程序相媲美,而且几乎所有的操作系统都支持现代的浏览器…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号