0

を使用して、デバイスのアラーム アプリで新しいアラームを設定しようとしていIntent(AlarmClock.ACTION_SET_ALARM)ます。私が試したすべてのモバイルで問題なく動作します。しかし、Galaxy S2 では機能しません。その意図は、アラームアプリではなく、空の黒い画面の時計アプリを開きます。

コード:

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);

アプリを直接開くと ( com.sec.android.app.clockpackage.ClockPackagesetClassName、そのすべて)、正しいアプリを開くことができますが、アラームは設定されません。

コード:

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);

知ってる人いる?!

ありがとう!

4

1 に答える 1

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.");
}
于 2013-07-09T14:00:51.623 に答える