2012-09-26 3 views
0

기기의 알람 앱에 Intent(AlarmClock.ACTION_SET_ALARM)이라는 새 알람을 설정하려고합니다. 그것은 내가 시험해 보는 모든 휴대폰에서 잘 작동합니다. 그러나 Galaxy S2에서는 작동하지 않습니다. 그 의도는 알람 앱 대신 빈 검은 스크린 시계 앱을 엽니 다.ACTION_SET_ALARM이 Galaxy SII에서 작동하지 않습니다.

코드 : 내가 직접 응용 프로그램 (com.sec.android.app.clockpackage.ClockPackage, setClassName, 모든 물건을) 열면

Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); 
    i.putExtra(AlarmClock.EXTRA_HOUR, hour); 
    i.putExtra(AlarmClock.EXTRA_MINUTES, minutes); 
    i.putExtra(AlarmClock.EXTRA_MESSAGE,personalMessage); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     i.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
    } 
    startActivity(i); 

, 내가 올바른 응용 프로그램을 열 수 있지만 알람을 설정하지 않습니다.

코드 :

String packageName = "com.sec.android.app.clockpackage"; 
    String className = "com.sec.android.app.clockpackage.ClockPackage"; 
    Intent internetIntent = new Intent(AlarmClock.ACTION_SET_ALARM); 
    internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
    internetIntent.setClassName(packageName, className); 
    internetIntent.putExtra(AlarmClock.EXTRA_HOUR, hour); 
    internetIntent.putExtra(AlarmClock.EXTRA_MINUTES, minutes); 
    internetIntent.putExtra(AlarmClock.EXTRA_MESSAGE,personalMessage); 
    startActivity(internetIntent); 

누구나 알고있다?!

감사합니다.

+0

당신이'EXTRA_SKIP_UI'을 삭제 시도 유무 :

이 시도? – CommonsWare

+0

예, 우리는 그것을 시도하고, 여전히 시계 응용 프로그램의 검은 화면을 엽니 다. – coderflow

+0

일반적으로 말하자면, 디바이스는 SDK의 모든 'ACTION_'' Intent' 액션을 존중하기로되어 있지만 반드시 그렇게 할 필요는 없습니다. 이상적으로, 그것들은 단순히' '를 가지지 않기 때문에'ActivityNotFoundException'을 잡아낼 수 있고 ('PackageManager'를 통해 누락 된 활동을 감지하고) 처리 할 수 ​​있습니다. 그러나 나는 이것이 일어나고있는 것에 굉장히 충격을받지는 않았지만, 나는 갤럭시 S2를 가지고 있지 않고 문제를 재현 할 수 있는지를 알 수 없다. 대부분의 경우, 'Build'와 'damage around around'를 사용하여이 특정 장치를 점검해야합니다. – CommonsWare

답변

0

같은 문제가 발생했습니다.

private void setAlarmNow() { 
    GregorianCalendar cal = new GregorianCalendar(); 
    int hour = cal.get(Calendar.HOUR_OF_DAY); 
    int minute = cal.get(Calendar.MINUTE)+1;//to make sure it won't be set at the next day 
    intent = new Intent(AlarmClock.ACTION_SET_ALARM); 
    intent.putExtra(AlarmClock.EXTRA_HOUR, hour); 
    intent.putExtra(AlarmClock.EXTRA_MINUTES, minute); 
    intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);  

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); 

    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.add(Calendar.SECOND, 10); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
    Log.d(TAG, "Backup alarm geset."); 
} 
관련 문제