HTC Senseのカレンダー起動方法

Tattooを初めとする、HTC Sense UIには、Google標準のカレンダーアプリは入っていません。

従って、カレンダーを起動するアプリ(タオでは、tCalendarや、tCalendarWidget)は、HTC Sense上ではカレンダーアプリを起動できません。HTCのカレンダーアプリを起動するように変更する必要があります。

tCalendarWidgetは、前から対応しようとは思っていたのですが、延び延びになっていました。

Desireが明日発売されますから、必然的に対応する必要が出てきたのであわてて対応してきました。

以下、解説です。

概要

既にカレンダー起動ロジックを書いている方は、HTCのパラメータだけわかれば対応可能で解説は必要ないと思います、Googleのカレンダーアプリと、HTCのカレンダーアプリは以下のようなコンポーネント名となっています。

//HTCSense以外のカレンダーprivate static final String DEFAULT_CALENDAR_PACKAGE = "com.android.calendar";private static final String DEFAULT_CALENDAR_CLASS = "com.android.calendar.LaunchActivity";//HTCSenseのカレンダーprivate static final String DEFAULT_CALENDAR_PACKAGE_HTC = "com.htc.calendar";private static final String DEFAULT_CALENDAR_CLASS_HTC = ".LaunchActivity";

ロジック的には、Googleカレンダーが見つからなければ、HTCカレンダーを起動する処理に変更するだけです。

チェックロジック

Intent intent = new Intent();ComponentName componentName = new ComponentName(DEFAULT_CALENDAR_PACKAGE, DEFAULT_CALENDAR_CLASS);intent.setComponent(componentName);final PackageManager packageManager = context.getPackageManager();List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);if(list.size() <= 0 ){/** HTCSenseの場合*/componentName = new ComponentName(DEFAULT_CALENDAR_PACKAGE_HTC, DEFAULT_CALENDAR_CLASS_HTC);intent.setComponent(componentName);}

こんな感じで、指定されたコンポーネントがあるかをチェックしていくだけです。(チェックメソッドを作った方がよいでしょうね)

ちなみに、現在デモで出ているIS01もGoogle標準のカレンダーはインストールされていませんし、Alex eReaderも同じくインストールされていません。

ブログ内の関連する記事


コメント

このブログの人気の投稿

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

iBatisで動的SQL

情報処理安全確保支援士登録証のカード型が届きました。