알람 관리자를 사용하여 8시 30 분에 인 텐트를 보내려고하지만 알람 관리자가 8시 30 분 경에 수신자에게 인 텐트를 보내지 않습니다.Android Alarm Manager : OnRecive 및 PendingIntent 서비스가 호출되지 않습니다.
나는 뭔가 setAlarm() 메서드가 엉망이지만 뭔가를 알아 내지 못했습니다. 또한 여기에 많은 게시물이 나열되어 서비스/수신기가 매니 페스트 파일에서 잘못 선언 될 수 있지만 매니페스트에 수신기와 서비스를 올바르게 포함시키는 방법을 잘 모르겠습니다. 패키지 이름을 통합하려고 시도했지만 여전히 작동하지 않습니다. 여기
public class EventAlarmReceiver extends WakefulBroadcastReceiver {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
private PendingIntent alarmIntent1;
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, EventSchedulingService.class);
startWakefulService(context, service);
}
public void setAlarm(Context context) {
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, EventSchedulingService.class);
intent.putExtra("silent", true);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
// Set the alarm's trigger time to 8:30 a.m.
calendar.set(Calendar.HOUR_OF_DAY,8);
calendar.set(Calendar.MINUTE, 30);
System.out.println(calendar.getTimeInMillis());
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
}
}
여기 내 서비스 파일
package edu.ssui.smartsilent;
public class EventSchedulingService extends IntentService {
public EventSchedulingService() {
super("EventSchedulingService");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d("SService", "m1");
AudioManager mgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if(intent.getExtras().getBoolean("silent")==true){
mgr.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_ALARM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}
else
{
mgr.setStreamVolume(AudioManager.STREAM_RING, (int) (mgr.getStreamMaxVolume(AudioManager.STREAM_RING)*0.8), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_ALARM, (int) (mgr.getStreamMaxVolume(AudioManager.STREAM_ALARM)*0.8), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_SYSTEM, (int) (mgr.getStreamMaxVolume(AudioManager.STREAM_SYSTEM)*0.8), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.setStreamVolume(AudioManager.STREAM_NOTIFICATION, (int) (mgr.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION)*0.8), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}
Log.d("SService", "m1");
EventAlarmReceiver.completeWakefulIntent(intent);
}
}
내 매니페스트
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.ssui.smartsilent"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".EventAlarmReceiver"></receiver>
<service android:name=".EventSchedulingService" />
</application>
</manifest>
정말 고마워요 !!!!!! –