رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام من یه برنامه ساده نوشتن که در ان از Alarm Manager استفاده کردم هیچ خطایی نداره ولی کار هم نمیکنه کسی میتونه کمکم کنه.

فایل MainActivity

public class MainActivity extends AppCompatActivity {
    private AlarmManager alarmMgr;
    private PendingIntent alarmIntent;
    TextView hour,minute;
    Button start,stop;
    int TimeHour , TimeMinute;
    String TimeH,TimeM;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        hour = (TextView) findViewById(R.id.editText_hour) ;
        minute = (TextView) findViewById(R.id.editText_minute) ;
        start = (Button) findViewById(R.id.button_startAlarm) ;
        stop = (Button) findViewById(R.id.Button_StopAlarm);
        TimeH = hour.getText().toString();
        TimeM = minute.getText().toString();

        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TimeHour = Integer.parseInt(hour.getText().toString());
                TimeMinute = Integer.parseInt(minute.getText().toString());
                hour.setText("");
                minute.setText("");
                alarmMgr = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE);
                Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
                alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);

                // Set the alarm .
                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(System.currentTimeMillis());
                calendar.set(Calendar.HOUR_OF_DAY, TimeHour);
                calendar.set(Calendar.MINUTE, TimeMinute);

                alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                        AlarmManager.INTERVAL_DAY, alarmIntent);


            }
        });

        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (alarmMgr!= null) {
                    alarmMgr.cancel(alarmIntent);
                }
            }
        });


    }
}

فایل Alarm Receiver

public class AlarmReceiver extends BroadcastReceiver{



        @Override
        public void onReceive(Context context, Intent intent) {
        String state = intent.getExtras().getString("extra");
        Log.e("MyActivity", "In the receiver with " + state);

        Intent serviceIntent = new Intent(context,ServiceTime.class);
        serviceIntent.putExtra("extra", state);
        Toast.makeText(context, "AlarmReceiver", Toast.LENGTH_SHORT).show();

        context.startService(serviceIntent);
    }

}

فایل Service Time

public class ServiceTime extends BroadcastReceiver {
    AudioManager audiomanage;

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "ServiceTime", Toast.LENGTH_SHORT).show();

        audiomanage = (AudioManager) context.getSystemService(MainActivity.AUDIO_SERVICE);
        audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT);
    }
}

 

فایل manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kurdan.morteza.myalarmmanager">

    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
    <uses-permission android:name="com.android.alarm.permission.AUDIO_MANAGER"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <receiver android:name=".AlarmReceiver">
        </receiver>
        <receiver android:name=".ServiceTime">

        </receiver>

    </application>

</manifest>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...