2012-04-29 9 views
1

Android 4用のアナログ時計ウィジェットを作成しました。タップ時にアラーム設定ウィンドウを表示するネイティブアナログ時計ウィジェットと同じ動作を模倣しますクロック。 Intent to launch the clock application on androidアンドロイドでアナログ時計をタップするとアラーム設定を開く方法

デスクトップの時計ではなく、アラーム設定を起動します:

検索した後、私はこのトピックを見つけました。私はandroid.provider.AlarmClockを使って何かをしなければならないと思うが、私はアラームウィンドウを起動することができない。誰もこれを達成する方法を知っていますか?

答えて

0

私のAppWidgetProviderクラスでは、4.1.2で私のために次のように動作します(4.xでのみ動作させたい場合 - それ以外の場合は適切なバージョンの適切なパッケージとクラス名を選択するための条件付きロジック、 )あなたがにリンクされ、ポストのように:

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.main); 
     pendingIntent = PendingIntent.getActivity(context, 0, 
       getAlarmPackage(context), 0); 
     views.setOnClickPendingIntent(R.id.analogClock1, pendingIntent); 

     AppWidgetManager 
       .getInstance(context) 
       .updateAppWidget(
         intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), 
         views); 
    } 
} 

private Intent getAlarmPackage(Context context) { 
    PackageManager manager = context.getPackageManager(); 
    Intent intent = new Intent(Intent.ACTION_MAIN) 
      .addCategory(Intent.CATEGORY_LAUNCHER); 

    try { 
     ComponentName c = new ComponentName("com.google.android.deskclock", 
       "com.android.deskclock.AlarmClock"); 
     manager.getActivityInfo(c, PackageManager.GET_META_DATA); 
     intent.setComponent(c); 
    } catch (NameNotFoundException nf) { 
     Log.d("XXXX", "Caught name not found exception!"); 
    } 

    return intent; 
} 

基本的には、com.google.android.deskclockcom.android.deskclock.AlarmClock()を使用する代わりにcom.android.deskclock.DeskClockするのではなく、目覚まし時計画面のアラームのリストを生成します。

関連する問題