String clockImpls[][] = {
{"Sony Ericsson Xperia Z", "com.sonyericsson.organizer", "com.sonyericsson.organizer.Organizer_WorldClock"},
{"ASUS Alarm Clock", "com.asus.alarmclock", "com.asus.alarmclock.AlarmClock"},
{"ASUS Desk Clock", "com.asus.deskclock", "com.asus.deskclock.DeskClock"},
{"Sony Alarm", "com.sonyericsson.alarm", "com.sonyericsson.alarm.Alarm"},
{"Standard Alarm", "com.android.alarmclock", "com.android.alarmclock.AlarmClock"},
{"Marshmallow Alarm", "com.android.deskclock", "com.android.deskclock.DeskClock"},
{"HTC Alarm ClockDT", "com.htc.android.worldclock", "com.htc.android.worldclock.WorldClockTabControl"},
{"Standard Alarm ClockDT", "com.android.deskclock", "com.android.deskclock.AlarmClock"},
{"Froyo Nexus Alarm ClockDT", "com.google.android.deskclock", "com.android.deskclock.DeskClock"},
{"Moto Blur Alarm ClockDT", "com.motorola.blur.alarmclock", "com.motorola.blur.alarmclock.AlarmClock"},
{"Samsung Galaxy S", "com.sec.android.app.clockpackage", "com.sec.android.app.clockpackage.ClockPackage"}};
Full Code for clock widget
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.util.Log;
import android.widget.RemoteViews;
public class ClockWidget extends AppWidgetProvider {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
PendingIntent pendingIntent;
if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.clock_widget);
try {
pendingIntent = PendingIntent.getActivity(context, 0, getAlarmPackage(context), 0);
views.setOnClickPendingIntent(R.id.clock, pendingIntent);
} catch (Exception e) {
Log.e("pendingExceptions", e.getMessage() + " " + getAlarmPackage(context));
}
AppWidgetManager
.getInstance(context)
.updateAppWidget(
intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS),
views);
}
}
public Intent getAlarmPackage(Context context) {
PackageManager packageManager = context.getPackageManager();
Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER);
String clockImpls[][] = {
{"Sony Ericsson Xperia Z", "com.sonyericsson.organizer", "com.sonyericsson.organizer.Organizer_WorldClock"},
{"ASUS Alarm Clock", "com.asus.alarmclock", "com.asus.alarmclock.AlarmClock"},
{"ASUS Desk Clock", "com.asus.deskclock", "com.asus.deskclock.DeskClock"},
{"Sony Alarm", "com.sonyericsson.alarm", "com.sonyericsson.alarm.Alarm"},
{"Standard Alarm", "com.android.alarmclock", "com.android.alarmclock.AlarmClock"},
{"Marshmallow Alarm", "com.android.deskclock", "com.android.deskclock.DeskClock"},
{"HTC Alarm ClockDT", "com.htc.android.worldclock", "com.htc.android.worldclock.WorldClockTabControl"},
{"Standard Alarm ClockDT", "com.android.deskclock", "com.android.deskclock.AlarmClock"},
{"Froyo Nexus Alarm ClockDT", "com.google.android.deskclock", "com.android.deskclock.DeskClock"},
{"Moto Blur Alarm ClockDT", "com.motorola.blur.alarmclock", "com.motorola.blur.alarmclock.AlarmClock"},
{"Samsung Galaxy S", "com.sec.android.app.clockpackage", "com.sec.android.app.clockpackage.ClockPackage"}};
boolean foundClockImpl = false;
for (String[] clockImpl : clockImpls) {
String packageName = clockImpl[1];
String className = clockImpl[2];
try {
ComponentName cn = new ComponentName(packageName, className);
packageManager.getActivityInfo(cn, PackageManager.GET_META_DATA);
AlarmClockIntent.setComponent(cn);
foundClockImpl = true;
} catch (NameNotFoundException ignored) {
}
}
if (foundClockImpl) {
return AlarmClockIntent;
} else {
return null;
}
}
}