king+ 0 ارسال شده در ۱۶ بهمن ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۶ بهمن ۱۳۹۶ سلام من یه برنامه ساده نوشتن که در ان از 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> نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .