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报警
不执行你想要的操作,而是执行其他操作。