2004/11/01

5 Way Naviのアプリケーションサポート

Tungsten T5 Navigation API Changesを読むと、Tungsten T5や Treo 650での 5 Way Naviの処理が Treo 600と異なると書かれています。
対応としては次のリリース POD 1.1に含まれる Glueライブラリを用いるとライブラリ内で機種を判別して正しい Trapを用いてくださいとのこと。

いらちな私は POD 1.1のリリース前になんとか自力で Glueライブラリを作ってみました。
自分のアプリケーションは Feature の Creatorが sysFileCSystem, IDが sysFtrNumUIHardwareFlags (27)の値を見て sysFtrNumUIHardwareHas5Way (0x00000001) が設定されていると 5 Way Naviがあるものと想定しています。
今回はさらに Featureの Creatorが sysFileCSystem, IDが sysFtrNumFiveWayNavVersion (32) が設定されていなければ Treo600, 設定されていると T5もしくは Treo650と判別します。
Treo600においては HsNav APIを利用し、それ以外では FrmNav APIを 利用するようなコードを追加します。
palmOneの SDK 4.0 Betaには Featureの Creatorが hsFtrCreator、IDが hsFtrIDNavigationSupportedの値をチェックしろと書かれていますが、いつまで hs...という Featureがサポートされるか信用ないために上記の方法を取っています。