0
我試圖在設備的鬧鐘應用程序中使用Intent(AlarmClock.ACTION_SET_ALARM)
設置新的鬧鐘。它在我嘗試使用的所有手機中都能正常工作。但在Galaxy S2中它不起作用。該意圖打開一個空的黑屏時鐘應用程序,而不是鬧鐘應用程序。ACTION_SET_ALARM在Galaxy SII中不起作用
代碼:
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.ClockPackage
,setClassName
,所有的東西),我可以打開正確的應用程序,但沒有設置報警。
代碼:
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);
有誰知道?
謝謝!
你試過下降'EXTRA_SKIP_UI'? – CommonsWare
是的,我們嘗試了它,它仍然打開時鐘應用程序的黑色碎片。 – coderflow
一般而言,設備被認爲是爲了兌現來自SDK的所有這些「ACTION_」「Intent」動作,但他們不必這樣做。理想情況下,他們根本就沒有一個'',所以我們可以通過'PackageManager'來捕獲ActivityNotFoundException(或者檢測缺失的活動)並處理它。但是我並不感到震驚,雖然我沒有碰到Galaxy S2,但我不知道我是否能夠重現這個問題。很可能,您需要使用「構建」和「圍繞損害路線」來檢查此特定設備。 –
CommonsWare