Android 动作设置报警不';t在Galaxy SII中工作

Android 动作设置报警不';t在Galaxy SII中工作,android,android-intent,alarm,galaxy,Android,Android Intent,Alarm,Galaxy,我正试图在设备的闹钟应用程序中设置新的闹钟,并带有意图(AlarmClock.ACTION\u set\u alarm)。它在所有手机上都很好用,我试过了。但在星系S2中,它不起作用。这意味着打开一个空的黑屏时钟应用程序,而不是闹钟应用程序 守则: Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); i.putExtra(AlarmClock.EXTRA_HOUR, hour); i.putExtra(AlarmClock.EX

我正试图在设备的闹钟应用程序中设置新的闹钟,并带有
意图(AlarmClock.ACTION\u set\u alarm)
。它在所有手机上都很好用,我试过了。但在星系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);
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);
如果我直接打开应用程序(
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);
谁知道


谢谢

我也遇到了同样的问题

试试这个:

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.");
}

您是否尝试过删除额外的跳过UI?是的,我们尝试过,但它仍然会打开时钟应用程序的黑色屏幕。一般来说,设备应该遵守SDK中的所有这些
操作
意图
操作,但它们不必遵守。理想情况下,他们不会为它设置
,因此我们可以捕获
活动NotFoundException
(或者通过
PackageManager
检测缺少的活动)并处理它。但我对这种情况并不感到非常震惊,尽管我碰巧没有S2星系,也看不出我是否能重现这个问题。最有可能的情况是,您需要使用
Build
和“绕损路由”检查此特定设备。@commonware抱歉,我不理解此>最有可能的情况是,您需要使用Build和“绕损路由”检查此特定设备你是什么意思?我的意思是检测到你在某个设备上,
操作\u设置\u报警
不执行你想要的操作,而是执行其他操作。