Можно создать дубликат:
Intent to launch the clock application on androidКак запустить будильник, зависящий от версии Android?
У меня есть виджет, который отображает время, и если один краны на него, он запускает com.android.alarmclock/.AlarmClock деятельность с PendingIntent
, Это отлично работает перед Froyo, но с Froyo я должен запустить com.android.deskclock/.AlarmClock. Поэтому я хочу ввести код, который проверяет существование класса и запускает соответствующую деятельность/намерение. Вот что я пробовал, но он не работает.
Intent alarmIntent = new Intent();
try {
if (Class.forName("com.android.deskclock.AlarmClock") != null) {
Log.i(TAG, "setting deskclock alarm -- must be Froyo!");
alarmIntent.setClassName("com.android.deskclock",
"com.android.deskclock.AlarmClock");
}
} catch (ClassNotFoundException e) {
Log.i(TAG, "setting alarmclock alarm -- must be Eclair!");
alarmIntent.setClassName("com.android.alarmclock",
"com.android.alarmclock.AlarmClock");
}
PendingIntent pendingIntent = PendingIntent.getActivity(context, REQUEST_UPDATE_TIME_NOW,
alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.text_timeofday, pendingIntent);
Он всегда считает, что это «Эклер» и поэтому терпит неудачу на Фройо. Это лучший подход, или я должен проверить уровень приложения? Я предпочитаю работать с классом.
Правильно ли мой синтаксис? – mobibob