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; } } }
Tuesday, October 18, 2016
default clock packages including Marshmallow to open Alarm in android
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment