2017-07-12 18 views
-1

アラームアプリケーションを作成していました。だから私はデバイス時間とアプリケーション時間を同期させるためのコードを知りたいと思っています。時間同期のためのコードは何でしょうか?アプリケーションの時刻をデバイス時刻と同期させる方法

+1

ようこそStackOverflow。あなたの説明から、正確に何をしようとしているのかは不明です。あなたのアプリケーションはデバイス上で動作します。あなたはデバイスから時間を得る方法を尋ねていますか、これは2つのデバイス間の時間を同期させるようなもっと複雑なものですか? –

+0

私はデバイスから時間を得たいです。 –

答えて

0
CountDownTimer newtimer = new CountDownTimer(1000000000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      Calendar c = Calendar.getInstance(); 
      String currentTime = c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND); 
     } 
     public void onFinish() { 

     } 
    }; 
    newtimer.start(); 

上記のコードを使用すると、毎秒システムから現在の時刻が取得されます。このコードをサービスに入れて、この時間をあなたのアプリで使用してください。

0

目覚まし時計アプリを作成している場合、Androidにはこのためのシステムサービスがあります。 AlarmManager。クラスの使用方法については、tutorialもあります。

チュートリアルから直接、AlarmManagerのシングルトンインスタンスを得ることができます。

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

チュートリアルでは、アラームの日付と時刻を設定するには、古いCalendarクラスを使用しますが、私は彼らがで作業する方がはるかに簡単であるため、新しいjava.timeクラスを使用することをお勧めします。これらのクラスはavailable on Android O(APIレベル26)、またはThreeTenABPライブラリを持つ古いバージョンのバックポートとして使用できます。

ZonedDateTime dateTime = ZonedDateTime.of(year, month, dayOfMonth, hour, minute, 0 , 0, ZoneId.systemDefault()); 
alarmManager.setExact(AlarmManager.RTC_WAKEUP, dateTime.toEpochSecond(), pendingIntent); 

あなたは、現在のシステム時刻を得ることにだけ関心がある場合けれどもが、あなたはjava.timeで次のメソッドを使用することができます。

ZonedDateTime current = ZonedDateTime.now(); 

または以下の方法を使用してください。

Long current = System.currentTimeMillis(); 
関連する問題