使用步骤

  • 具体使用
  • 时间转换
  • 获取时间
  • 超过限定时间弹窗告知,禁止使用


具体使用

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		
		//时间格式
		String mVersionEndTime = "2022-10-01 00:00:00";

		checkAppPermissions(mVersionEndTime);
    }

时间转换

private String dateToStamp(String time) throws ParseException {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = null;
            date = simpleDateFormat.parse(time);
            long ts = date.getTime();
            return String.valueOf(ts);

        }catch (java.text.ParseException e)
        {
            LoggerUtils.Log_d(TAG, "get time failed" + e.toString());
        }
        return null;
    }

获取时间

获取系统时间或百度服务器时间

private long getNetTime() {

        long current_time = System.currentTimeMillis();

        URL url = null;//取得资源对象
        try {
            url = new URL("http://www.baidu.com");
            URLConnection uc = url.openConnection();//生成连接对象
            uc.connect(); //发出连接
            current_time = uc.getDate(); //取得网站日期时间

        } catch (Exception e) {
            e.printStackTrace();
        }

        return current_time;
    }

超过限定时间弹窗告知,禁止使用

private void checkAppPermissions(version_end_time)
    {
        Thread getTimeThread = new Thread(new Runnable() {
            @Override
            public void run() {
                mCurrentTime = getNetTime();
            }
        });

        getTimeThread.start();
        try {
            getTimeThread.join();
        } catch (InterruptedException e) {
            LoggerUtils.Log_d(TAG, String.format("getTimeThread error" + e.toString()));
        }

        String tm = dateToStamp(version_end_time);
        long time = Long.parseLong(tm);

        if(mCurrentTime >= time)
        {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(this).setTitle("温馨提示")
                    .setMessage("您的使用权已过期,请联系相关人员获取最新版本权限")
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            finish();
                        }
                    });

            Dialog dialog = alertDialog.create();
            dialog.setCanceledOnTouchOutside(false);
            dialog.setCancelable(false);
            dialog.show();

            LoggerUtils.Log_d(TAG, "您的使用权已过期,请联系相关人员获取最新版本权限");
        }
    }