私はアンドロイド開発を学んでいるので、アンドロイドでいくつかのものを試しています.今、私はここにシナリオを持っています.
- アプリケーションを介して Android フォンのシステム日付を変更したいです (最初に、これが実行可能かどうかを知りたいです) 。
レイアウトは以下の通り
今私が欲しいのは、ユーザーがボタンをクリックすると、日付が20日増加するはずです。どうすればこれを行うことができますか。
起動できません...助けてください
すでに言ったように、それは不可能です。アクセス許可が必要であり、SET_TIME
そのアクセス許可は Android システム イメージにあるアプリケーションに対してのみシステムによって付与されます。その権限を取得できれば、AlarmManager で簡単に変更できます。SystemClock.setCurrentTimeMillis
/dev/alarm ファイルに書き込む
adb shell ls -l /dev/alarm
crw-rw-r-- system radio 10, 46 2013-06-12 10:46 alarm
c
のためにとどまるCharacter special file (stored in /dev).
system と radio には読み取りと書き込みの許可 (rw-、tree ビット、int 値 6) があり、その他には読み取り許可のみ (r、int 値 4) があります。したがって、ファイルのパーミッションは664
. root ユーザー (実行su
中) を取得できる場合は、このファイルのアクセス許可を変更して、新しい値を書き込むことができます。アプリがモバイルの日付をプログラムで変更できるようにするよう Google に依頼するバグ レポートが作成されましたが、拒否されました。 参考はこちら
Android では、アプリケーションが時刻と日付への書き込みアクセス権を持つ唯一の方法は、SET_TIME パーミッションを取得することです。これは、"Android システム イメージ内にあるアプリケーション、または宣言したアプリケーションと同じ証明書で署名されたアプリケーションに対してのみ可能です。許可。」(署名またはシステム保護レベルを参照)。
アプリケーションがこの保護レベルに到達する唯一の方法は、ルート化されたデバイスで実行するか、独自の Android ROM を構築して署名することです。
このような場合は、AlarmManagerまたは単にCalendarインスタンスを簡単に使用できます。
幸運を!
通常のユーザー アプリケーションには、デバイスの時刻を変更する権限がありません。代替オプションについては、次の投稿でキャッシュバッシュによる回答をお読みください。