我正在开发一个小部件,除其他外,它会根据某些用户操作使用意图打开常规的 android 日历。我目前正在研究 ICS,所以不太关心 API 的旧版本。我可以使用以下代码打开日视图:
Intent intent2 = new Intent();
intent2.setComponent(new ComponentName("com.android.calendar", "com.android.calendar.AllInOneActivity"));
intent2.setAction("android.intent.action.MAIN");
intent2.addCategory("android.intent.category.LAUNCHER");
intent2.setFlags(0x10200000);
intent2.putExtra("beginTime", dateStartMillis);
intent2.putExtra("VIEW", "DAY");
context.startActivit(intent2);
但是我似乎找不到在月视图中打开它的方法。根据AllInOneActivity的 GrepCode,它在其onCreate
方法中调用Utils.getViewTypeFromIntentAndSharedPref(this);
以确定要显示的视图。这是那个方法:
public static int getViewTypeFromIntentAndSharedPref(Activity activity) {
Intent intent = activity.getIntent();
Bundle extras = intent.getExtras();
SharedPreferences prefs = GeneralPreferences.getSharedPreferences(activity);
if (TextUtils.equals(intent.getAction(), Intent.ACTION_EDIT)) {
return ViewType.EDIT;
}
if (extras != null) {
if (extras.getBoolean(INTENT_KEY_DETAIL_VIEW, false)) {
// This is the "detail" view which is either agenda or day view
return prefs.getInt(GeneralPreferences.KEY_DETAILED_VIEW,
GeneralPreferences.DEFAULT_DETAILED_VIEW);
} else if (INTENT_VALUE_VIEW_TYPE_DAY.equals(extras.getString(INTENT_KEY_VIEW_TYPE))) {
// Not sure who uses this. This logic came from LaunchActivity
return ViewType.DAY;
}
}
// Default to the last view
return prefs.getInt(
GeneralPreferences.KEY_START_VIEW, GeneralPreferences.DEFAULT_START_VIEW);
}
我没有在这种方法(或其他任何地方)中看到将视图设置为 MonthView 的方法。我可以使用某种技巧还是应该接受这是不可能的?