title: Intent to launch the clock application on android
body: <p>I am facing a problem with a clock widget i made. I want the user to touch the clock and launch the clock app on the phone. this is the code:</p>
  
  <pre><code>//this worked on my nexus 2.1 
  if(VERSION.SDK.equals("7")){
              RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
  
              Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock"));
              PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, AlarmClockIntent, 0);
              views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
  
              AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);
  
          }
    //this worked on my nexus +froyo2.2           
    else if(VERSION.SDK.equals("8")){
              RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
  
              Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.google.android.deskclock", "com.android.deskclock.DeskClock"));
              PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, AlarmClockIntent, 0);
              views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
  
              AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);
  
          }
   //this worked on my htc magic with 1.5 and 1.6
          else{
              RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
  
              Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.alarmclock", "com.android.alarmclock.AlarmClock"));
              PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, AlarmClockIntent, 0);
              views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
  
              AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);
          }
  </code></pre>
  
  <p>I made the above so the when i touch the clock opens the alarm settings. But is not universal.
  I found out that on droids with 2.2 does not work. There must be a better solution than creating an if statement for every android phone flavor i  the world. Plus i don not know the package names for all.
  Anyone knows how to overcome this please help.</p>