MH MH 0 ارسال شده در 29 بهمن، 2024 اشتراک گذاری ارسال شده در 29 بهمن، 2024 سلام وقتتون بخیر؛ من یک برنامه به زبان جاوا برای اندروید در اندروید استودیو نوشتم، برنامه به این صورت هستش که کاربر یک سری ساعات رو انتخاب میکنه و وقتی ساعت دستگاه به ساعت مد نظر برنامه رسید، یک آهنگ پخش میشه. من میخوام موقعی که کاربر به طور کامل برنامه رو بست، باز هم آهنگ راس ساعت پخش بشه. فقط کدهای مرتبط رو قرار دادم: منیفست: <service android:name=".AlarmService" android:enabled="true" android:exported="false"/> کدهای اکتیویتی proActivity: private void checkWorkStatus() { // گرفتن تاریخ و ساعت فعلی Calendar calendar = Calendar.getInstance(); String currentDay = new SimpleDateFormat("EEEE", new Locale("fa")).format(calendar.getTime()); String currentHour = String.format("%02d:00 - %02d:00", calendar.get(Calendar.HOUR_OF_DAY), (calendar.get(Calendar.HOUR_OF_DAY) + 1) % 24); int currentMinute = calendar.get(Calendar.MINUTE); // گرفتن ساعات کاری ذخیرهشده برای روز جاری Set<String> workHours = sharedPreferences.getStringSet(currentDay, null); if (workHours == null || workHours.isEmpty()) { tvStatus.setText("تعطیل"); } else if (!workHours.contains(currentHour)) { tvStatus.setText("کار شروع نشده"); } else { // بررسی دقیقههای مختلف و تغییر متن لیبل if (currentMinute == 25 || currentMinute == 29 || currentMinute == 55 || currentMinute == 59) { tvStatus.setText("استراحت :)"); // فقط یکبار در دقیقههای مشخص شده آهنگ استراحت پخش میشود playRestSoundOnce(currentMinute); } else if (currentMinute == 0 || currentMinute == 24 || currentMinute == 30 || currentMinute == 54) { tvStatus.setText("کار :("); // فقط یکبار در دقیقههای مشخص شده آهنگ کار پخش میشود playWorkSoundOnce(currentMinute); } else { tvStatus.setText("کار"); } } } private void playRestSoundOnce(int minute) { if (minute == 25 && restPlayer != null && !restPlayer.isPlaying()) { restPlayer.start(); // پخش آهنگ استراحت } else if (minute == 55 && restPlayer != null && !restPlayer.isPlaying()) { restPlayer.start(); // پخش آهنگ استراحت } } private void playWorkSoundOnce(int minute) { if (minute == 0 && workPlayer != null && !workPlayer.isPlaying()) { workPlayer.start(); // پخش آهنگ کار } else if (minute == 30 && workPlayer != null && !workPlayer.isPlaying()) { workPlayer.start(); // پخش آهنگ کار } } کدهای AlarmServices: package com.example.bbbb; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.Handler; import android.os.IBinder; import java.util.Calendar; public class AlarmService extends Service { private MediaPlayer restPlayer, workPlayer; private Handler handler = new Handler(); @Override public void onCreate() { super.onCreate(); // ایجاد دو MediaPlayer برای فایلهای صوتی مختلف restPlayer = MediaPlayer.create(this, R.raw.rest); // صدای استراحت workPlayer = MediaPlayer.create(this, R.raw.work); // صدای کار } @Override public int onStartCommand(Intent intent, int flags, int startId) { // شروع چک وضعیت هر 1 ثانیه startAlarmCheck(); return START_STICKY; } private void startAlarmCheck() { handler.postDelayed(new Runnable() { @Override public void run() { checkAlarmCondition(); // بررسی وضعیت و پخش هشدار handler.postDelayed(this, 1000); // اجرای مجدد پس از یک ثانیه } }, 1000); } private void checkAlarmCondition() { // بررسی وضعیت و دقیقه برای پخش هشدار int currentMinute = Calendar.getInstance().get(Calendar.MINUTE); // دقیقههای خاص برای استراحت و کار if (currentMinute == 0 || currentMinute == 30) { playWorkSound(); // پخش صدای کار } else if (currentMinute == 25 || currentMinute == 55) { playRestSound(); // پخش صدای استراحت } } private void playRestSound() { if (restPlayer != null && !restPlayer.isPlaying()) { restPlayer.start(); // پخش صدای استراحت } } private void playWorkSound() { if (workPlayer != null && !workPlayer.isPlaying()) { workPlayer.start(); // پخش صدای کار } } @Override public void onDestroy() { super.onDestroy(); if (restPlayer != null) { restPlayer.release(); } if (workPlayer != null) { workPlayer.release(); } } @Override public IBinder onBind(Intent intent) { return null; } } لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
MH MH 0
سلام وقتتون بخیر؛
من یک برنامه به زبان جاوا برای اندروید در اندروید استودیو نوشتم، برنامه به این صورت هستش که کاربر یک سری ساعات رو انتخاب میکنه
و وقتی ساعت دستگاه به ساعت مد نظر برنامه رسید، یک آهنگ پخش میشه. من میخوام موقعی که کاربر به طور کامل برنامه رو بست، باز هم
آهنگ راس ساعت پخش بشه. فقط کدهای مرتبط رو قرار دادم:
منیفست:
کدهای اکتیویتی proActivity:
کدهای AlarmServices:
لینک ارسال
به اشتراک گذاری در سایت های دیگر
0 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.