알람어플을 만들고 있는데 저런 에러가 떠요ㅜ
@RequiresApi(api = Build.VERSION_CODES.N)
public class AlarmActivity extends AppCompatActivity {
private AlarmManager mManager;
private Context mContext;
private GregorianCalendar mCalendar;
private TimePicker mTime;
ArrayList<AlarmData> arrayListAlarmTimeItem = new ArrayList<AlarmData>();
public static final int DEFAULT_ALARM_REQUEST = 8000;
private NotificationManager mNotification;
Button btnAddAlarm;
GregorianCalendar currentCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT+09:00"));
private SharedPreferences sharedPref;
private SharedPreferences.Editor sharedEditor;
AdapterAlarm arrayAdaterAlarmList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm_activity);
mContext=getApplicationContext();
mTime=(TimePicker)findViewById(R.id.time_picker);
btnAddAlarm=(Button)findViewById(R.id.savebtn);
sharedPref=getPreferences(Context.MODE_PRIVATE);
sharedEditor=sharedPref.edit();
mTime.setIs24HourView(false);
arrayAdaterAlarmList=new AdapterAlarm(mContext,arrayListAlarmTimeItem);
mManager=(AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE);
//mManager.setTimeZone("GMT+09:00");
mManager.setTimeZone("GMT+09:00");
btnAddAlarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int hh=mTime.getCurrentHour();
int mm=mTime.getCurrentMinute();
int reqCode=DEFAULT_ALARM_REQUEST+arrayListAlarmTimeItem.size();
int i=arrayListAlarmTimeItem.size();
arrayListAlarmTimeItem.add(new AlarmData(hh,mm,reqCode));
sharedEditor.putInt("list"+i+"hh",hh);
sharedEditor.putInt("list"+i+"mm", mm);
sharedEditor.putInt("list"+i+"reqCode", reqCode);
sharedEditor.putInt("size", i);
sharedEditor.commit();
arrayAdaterAlarmList.notifyDataSetChanged();
GregorianCalendar gregorianCalendar=new GregorianCalendar(TimeZone.getTimeZone("GMT+09:00"));
int currentYY=currentCalendar.get(Calendar.YEAR);
int currentMM=currentCalendar.get(Calendar.MONTH);
int currentDD=currentCalendar.get(Calendar.DAY_OF_MONTH);
gregorianCalendar.set(currentYY,currentMM,currentDD+1,hh,mm,00);
if(gregorianCalendar.getTimeInMillis()<currentCalendar.getTimeInMillis()){
gregorianCalendar.set(currentYY,currentMM,currentDD,hh,mm,00);
Log.i("TAG",gregorianCalendar.getTimeInMillis()+":");
}
Intent intent=new Intent(AlarmActivity.this,AlarmdeTimeShowActivity.class);
intent.putExtra("time", hh+":"+mm);
intent.putExtra("data", "알람: " + currentCalendar.getTime().toLocaleString());
intent.putExtra("reqCode", reqCode);
Toast.makeText(mContext, "reqCode : "+reqCode, Toast.LENGTH_LONG).show();
PendingIntent pi=PendingIntent.getActivity(AlarmActivity.this,reqCode,intent,PendingIntent.FLAG_UPDATE_CURRENT);
mManager.setRepeating(AlarmManager.RTC_WAKEUP,gregorianCalendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pi);
}
});
}
@Override
protected void onResume() {
super.onResume();
arrayListAlarmTimeItem.clear();
int size=sharedPref.getInt("size",0);
if(size!=0){
for(int i=0;i<size+1;i++){
int hh=sharedPref.getInt("list"+i+"reCode",0);
int mm = sharedPref.getInt("list"+i+"mm", 0);
int reqCode=sharedPref.getInt("list"+i+"reCode",0);
arrayListAlarmTimeItem.add(new AlarmData(hh,mm,reqCode));
}
}arrayAdaterAlarmList.notifyDataSetChanged();
}
}
전체오류:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dsm2016.alarm/com.example.dsm2016.alarm.AlarmActivity}: java.lang.IllegalArgumentException: Timezone: GMT+09:00 is not an Olson ID
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.IllegalArgumentException: Timezone: GMT+09:00 is not an Olson ID
at android.app.AlarmManager.setTimeZone(AlarmManager.java:972)
at com.example.dsm2016.alarm.AlarmActivity.onCreate(AlarmActivity.java:58)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)