2011-08-17 49 views
9

BỐI CẢNHLàm thế nào để thiết lập Android thiết bị ngày/giờ lập trình

tôi đang làm việc trên một dự án bằng cách sử dụng Wi-fi chỉ có phiên bản của tab Samsung Galaxy (7"). Trên một số trong những thiết bị chúng tôi nhìn thấy những ngày/giờ trên các thiết lập lại thiết bị nhận được (không biết tại sao) đối với một số ngày trong quá khứ (như 2000/01/01).

CÂU HỎI (S)

làm thế nào tôi có thể lập trình đặt lại ngày/giờ của thiết bị? Tôi muốn sử dụng một số lệnh shell adb nếu có thể (kịch bản lệnh shell của tôi là rus ty) Nếu không có lệnh shell nào có thể thực hiện được điều này, có cách nào để thực hiện điều này bằng cách viết và cài đặt một ứng dụng (có vẻ như vi phạm bảo mật) không?

Trả lời

1

Sử dụng lệnh 'ngày' của trình bao. Với một đối số về thời gian epoch unix (tức là giây kể từ 1/1/70), nó đặt đồng hồ của thiết bị, ví dụ: 'adb shell date 1318349236'.

Bạn có thể nhận được dấu thời gian hiện tại tính bằng giây với 'ngày shell adb +% s'. Nếu bạn có busybox, lệnh date có nhiều khả năng hơn và bạn có thể nhận ngày tùy ý mong muốn của mình sau vài giây với 'busybox date +% s -d "2010-01-01 12:34:56"'

+1

Khi tôi cố gắng ngày adb shell 1319124916 tôi nhận được thời gian này 1319124916 -> 1319124916.0 thời gian chờ ofday thất bại Số tập tin sai – celoftis

+1

Trên Linux tôi sử dụng: adb shell date -s \ 'ngày" +% Y% m% d.% H% M% S "\' – MartinMarco

30

Bạn có thể sử dụng lệnh tiếp theo:

ngày adb shell -s YYYYMMDD.HHmmss

dụ:

ngày adb shell -s 20120423,130000

đặt ngày để Mon Apr 23 13:00:00 CEST 2012 (điện thoại của tôi là trên múi giờ CEST)

+0

Xin chào, có thể lấy thời gian từ cửa sổ không máy và đặt nó làm thời gian android? –

+2

Xin lỗi, không phải người dùng Windows –

+1

@celoftis Bạn có thể chấp nhận câu trả lời này không? –

1

tôi đã perl kịch bản này để xử lý vấn đề này:

clock.pl

use Time::localtime; 
$_=localtime; 
system'adb','shell','date -s',sprintf("%04d%02d%02d.%02d%02d%02d",$_->year+1900,$_->mon+1,$_->mday,$_->hour,$_->min,$_->sec) 

Gọi nó bằng cách sử cmd (windows) hoặc terminal (mac):

perl < clock.pl 

Đồng hồ android sẽ được cập nhật ngay lập tức với thời gian máy của bạn.

0

Tôi đang sử dụng các lệnh sau đây để định dạng một cách chính xác ngày và thời gian trong các cửa sổ và thời gian hệ thống thiết lập trên android

set datetimef=%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%date:~-4%.%time:~6,2% 
adb shell date -d %datetimef% 

này đặt thời gian hệ thống unix của Android nhưng không làm thay đổi đồng hồ phần cứng. Thời gian hiển thị bởi gui android cũng không bị ảnh hưởng theo cách này.

Tôi đoán lệnh hwclock nên được sử dụng để cập nhật đồng hồ phần cứng, nhưng điều này không thực thi do lỗi quyền.

0

Thay đổi ngày dựa trên ngày Hệ thống của bạn

Thay đổi ngày tương tự như hệ thống

adb shell date -s `date +%G%m%d.%H%M%S` 

Thay đổi ngày để ngày mai:

adb shell date -s `date --date='1 day' +%G%m%d.%H%M%S` 

Thay đổi ngày để ngày mai 12:00

adb shell date -s `date --date='1 day' +%G%m%d.000000` 

Thay đổi ngày tới Hôm qua

adb shell date -s `date --date='1 day ago' +%G%m%d.%H%M%S` 

Thay đổi ngày với tuần trước

adb shell date -s `date --date='1 week ago' +%G%m%d.%H%M%S` 
Các vấn đề liên quan